home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / share / libtool / libltdl / ltmain.sh < prev    next >
Text File  |  2006-04-25  |  196KB  |  6,864 lines

  1. # ltmain.sh - Provide generalized library-building support services.
  2. # NOTE: Changing this file will not affect anything until you rerun configure.
  3. #
  4. # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005
  5. # Free Software Foundation, Inc.
  6. # Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
  7. #
  8. # This program is free software; you can redistribute it and/or modify
  9. # it under the terms of the GNU General Public License as published by
  10. # the Free Software Foundation; either version 2 of the License, or
  11. # (at your option) any later version.
  12. #
  13. # This program is distributed in the hope that it will be useful, but
  14. # WITHOUT ANY WARRANTY; without even the implied warranty of
  15. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  16. # General Public License for more details.
  17. #
  18. # You should have received a copy of the GNU General Public License
  19. # along with this program; if not, write to the Free Software
  20. # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  21. #
  22. # As a special exception to the GNU General Public License, if you
  23. # distribute this file as part of a program that contains a
  24. # configuration script generated by Autoconf, you may include it under
  25. # the same distribution terms that you use for the rest of that program.
  26.  
  27. basename="s,^.*/,,g"
  28.  
  29. # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
  30. # is ksh but when the shell is invoked as "sh" and the current value of
  31. # the _XPG environment variable is not equal to 1 (one), the special
  32. # positional parameter $0, within a function call, is the name of the
  33. # function.
  34. progpath="$0"
  35.  
  36. # The name of this program:
  37. progname=`echo "$progpath" | $SED $basename`
  38. modename="$progname"
  39.  
  40. # Global variables:
  41. EXIT_SUCCESS=0
  42. EXIT_FAILURE=1
  43.  
  44. PROGRAM=ltmain.sh
  45. PACKAGE=libtool
  46. VERSION=1.5.22
  47. TIMESTAMP=" (1.1220.2.365 2005/12/18 22:14:06)"
  48.  
  49. # See if we are running on zsh, and set the options which allow our
  50. # commands through without removal of \ escapes.
  51. if test -n "${ZSH_VERSION+set}" ; then
  52.   setopt NO_GLOB_SUBST
  53. fi
  54.  
  55. # Check that we have a working $echo.
  56. if test "X$1" = X--no-reexec; then
  57.   # Discard the --no-reexec flag, and continue.
  58.   shift
  59. elif test "X$1" = X--fallback-echo; then
  60.   # Avoid inline document here, it may be left over
  61.   :
  62. elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
  63.   # Yippee, $echo works!
  64.   :
  65. else
  66.   # Restart under the correct shell, and then maybe $echo will work.
  67.   exec $SHELL "$progpath" --no-reexec ${1+"$@"}
  68. fi
  69.  
  70. if test "X$1" = X--fallback-echo; then
  71.   # used as fallback echo
  72.   shift
  73.   cat <<EOF
  74. $*
  75. EOF
  76.   exit $EXIT_SUCCESS
  77. fi
  78.  
  79. default_mode=
  80. help="Try \`$progname --help' for more information."
  81. magic="%%%MAGIC variable%%%"
  82. mkdir="mkdir"
  83. mv="mv -f"
  84. rm="rm -f"
  85.  
  86. # Sed substitution that helps us do robust quoting.  It backslashifies
  87. # metacharacters that are still active within double-quoted strings.
  88. Xsed="${SED}"' -e 1s/^X//'
  89. sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
  90. # test EBCDIC or ASCII
  91. case `echo X|tr X '\101'` in
  92.  A) # ASCII based system
  93.     # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
  94.   SP2NL='tr \040 \012'
  95.   NL2SP='tr \015\012 \040\040'
  96.   ;;
  97.  *) # EBCDIC based system
  98.   SP2NL='tr \100 \n'
  99.   NL2SP='tr \r\n \100\100'
  100.   ;;
  101. esac
  102.  
  103. # NLS nuisances.
  104. # Only set LANG and LC_ALL to C if already set.
  105. # These must not be set unconditionally because not all systems understand
  106. # e.g. LANG=C (notably SCO).
  107. # We save the old values to restore during execute mode.
  108. if test "${LC_ALL+set}" = set; then
  109.   save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
  110. fi
  111. if test "${LANG+set}" = set; then
  112.   save_LANG="$LANG"; LANG=C; export LANG
  113. fi
  114.  
  115. # Make sure IFS has a sensible default
  116. lt_nl='
  117. '
  118. IFS="     $lt_nl"
  119.  
  120. if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
  121.   $echo "$modename: not configured to build any kind of library" 1>&2
  122.   $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
  123.   exit $EXIT_FAILURE
  124. fi
  125.  
  126. # Global variables.
  127. mode=$default_mode
  128. nonopt=
  129. prev=
  130. prevopt=
  131. run=
  132. show="$echo"
  133. show_help=
  134. execute_dlfiles=
  135. duplicate_deps=no
  136. preserve_args=
  137. lo2o="s/\\.lo\$/.${objext}/"
  138. o2lo="s/\\.${objext}\$/.lo/"
  139.  
  140. #####################################
  141. # Shell function definitions:
  142. # This seems to be the best place for them
  143.  
  144. # func_mktempdir [string]
  145. # Make a temporary directory that won't clash with other running
  146. # libtool processes, and avoids race conditions if possible.  If
  147. # given, STRING is the basename for that directory.
  148. func_mktempdir ()
  149. {
  150.     my_template="${TMPDIR-/tmp}/${1-$progname}"
  151.  
  152.     if test "$run" = ":"; then
  153.       # Return a directory name, but don't create it in dry-run mode
  154.       my_tmpdir="${my_template}-$$"
  155.     else
  156.  
  157.       # If mktemp works, use that first and foremost
  158.       my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
  159.  
  160.       if test ! -d "$my_tmpdir"; then
  161.     # Failing that, at least try and use $RANDOM to avoid a race
  162.     my_tmpdir="${my_template}-${RANDOM-0}$$"
  163.  
  164.     save_mktempdir_umask=`umask`
  165.     umask 0077
  166.     $mkdir "$my_tmpdir"
  167.     umask $save_mktempdir_umask
  168.       fi
  169.  
  170.       # If we're not in dry-run mode, bomb out on failure
  171.       test -d "$my_tmpdir" || {
  172.         $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2
  173.     exit $EXIT_FAILURE
  174.       }
  175.     fi
  176.  
  177.     $echo "X$my_tmpdir" | $Xsed
  178. }
  179.  
  180.  
  181. # func_win32_libid arg
  182. # return the library type of file 'arg'
  183. #
  184. # Need a lot of goo to handle *both* DLLs and import libs
  185. # Has to be a shell function in order to 'eat' the argument
  186. # that is supplied when $file_magic_command is called.
  187. func_win32_libid ()
  188. {
  189.   win32_libid_type="unknown"
  190.   win32_fileres=`file -L $1 2>/dev/null`
  191.   case $win32_fileres in
  192.   *ar\ archive\ import\ library*) # definitely import
  193.     win32_libid_type="x86 archive import"
  194.     ;;
  195.   *ar\ archive*) # could be an import, or static
  196.     if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
  197.       $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
  198.       win32_nmres=`eval $NM -f posix -A $1 | \
  199.     $SED -n -e '1,100{/ I /{s,.*,import,;p;q;};}'`
  200.       case $win32_nmres in
  201.       import*)  win32_libid_type="x86 archive import";;
  202.       *)        win32_libid_type="x86 archive static";;
  203.       esac
  204.     fi
  205.     ;;
  206.   *DLL*)
  207.     win32_libid_type="x86 DLL"
  208.     ;;
  209.   *executable*) # but shell scripts are "executable" too...
  210.     case $win32_fileres in
  211.     *MS\ Windows\ PE\ Intel*)
  212.       win32_libid_type="x86 DLL"
  213.       ;;
  214.     esac
  215.     ;;
  216.   esac
  217.   $echo $win32_libid_type
  218. }
  219.  
  220.  
  221. # func_infer_tag arg
  222. # Infer tagged configuration to use if any are available and
  223. # if one wasn't chosen via the "--tag" command line option.
  224. # Only attempt this if the compiler in the base compile
  225. # command doesn't match the default compiler.
  226. # arg is usually of the form 'gcc ...'
  227. func_infer_tag ()
  228. {
  229.     if test -n "$available_tags" && test -z "$tagname"; then
  230.       CC_quoted=
  231.       for arg in $CC; do
  232.     case $arg in
  233.       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \    ]*|*]*|"")
  234.       arg="\"$arg\""
  235.       ;;
  236.     esac
  237.     CC_quoted="$CC_quoted $arg"
  238.       done
  239.       case $@ in
  240.       # Blanks in the command may have been stripped by the calling shell,
  241.       # but not from the CC environment variable when configure was run.
  242.       " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;;
  243.       # Blanks at the start of $base_compile will cause this to fail
  244.       # if we don't check for them as well.
  245.       *)
  246.     for z in $available_tags; do
  247.       if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
  248.         # Evaluate the configuration.
  249.         eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
  250.         CC_quoted=
  251.         for arg in $CC; do
  252.         # Double-quote args containing other shell metacharacters.
  253.         case $arg in
  254.           *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \    ]*|*]*|"")
  255.           arg="\"$arg\""
  256.           ;;
  257.         esac
  258.         CC_quoted="$CC_quoted $arg"
  259.       done
  260.         case "$@ " in
  261.           " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*)
  262.           # The compiler in the base compile command matches
  263.           # the one in the tagged configuration.
  264.           # Assume this is the tagged configuration we want.
  265.           tagname=$z
  266.           break
  267.           ;;
  268.         esac
  269.       fi
  270.     done
  271.     # If $tagname still isn't set, then no tagged configuration
  272.     # was found and let the user know that the "--tag" command
  273.     # line option must be used.
  274.     if test -z "$tagname"; then
  275.       $echo "$modename: unable to infer tagged configuration"
  276.       $echo "$modename: specify a tag with \`--tag'" 1>&2
  277.       exit $EXIT_FAILURE
  278. #        else
  279. #          $echo "$modename: using $tagname tagged configuration"
  280.     fi
  281.     ;;
  282.       esac
  283.     fi
  284. }
  285.  
  286.  
  287. # func_extract_an_archive dir oldlib
  288. func_extract_an_archive ()
  289. {
  290.     f_ex_an_ar_dir="$1"; shift
  291.     f_ex_an_ar_oldlib="$1"
  292.  
  293.     $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)"
  294.     $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $?
  295.     if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
  296.      :
  297.     else
  298.       $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2
  299.       exit $EXIT_FAILURE
  300.     fi
  301. }
  302.  
  303. # func_extract_archives gentop oldlib ...
  304. func_extract_archives ()
  305. {
  306.     my_gentop="$1"; shift
  307.     my_oldlibs=${1+"$@"}
  308.     my_oldobjs=""
  309.     my_xlib=""
  310.     my_xabs=""
  311.     my_xdir=""
  312.     my_status=""
  313.  
  314.     $show "${rm}r $my_gentop"
  315.     $run ${rm}r "$my_gentop"
  316.     $show "$mkdir $my_gentop"
  317.     $run $mkdir "$my_gentop"
  318.     my_status=$?
  319.     if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then
  320.       exit $my_status
  321.     fi
  322.  
  323.     for my_xlib in $my_oldlibs; do
  324.       # Extract the objects.
  325.       case $my_xlib in
  326.     [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
  327.     *) my_xabs=`pwd`"/$my_xlib" ;;
  328.       esac
  329.       my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'`
  330.       my_xdir="$my_gentop/$my_xlib"
  331.  
  332.       $show "${rm}r $my_xdir"
  333.       $run ${rm}r "$my_xdir"
  334.       $show "$mkdir $my_xdir"
  335.       $run $mkdir "$my_xdir"
  336.       exit_status=$?
  337.       if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then
  338.     exit $exit_status
  339.       fi
  340.       case $host in
  341.       *-darwin*)
  342.     $show "Extracting $my_xabs"
  343.     # Do not bother doing anything if just a dry run
  344.     if test -z "$run"; then
  345.       darwin_orig_dir=`pwd`
  346.       cd $my_xdir || exit $?
  347.       darwin_archive=$my_xabs
  348.       darwin_curdir=`pwd`
  349.       darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'`
  350.       darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null`
  351.       if test -n "$darwin_arches"; then 
  352.         darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'`
  353.         darwin_arch=
  354.         $show "$darwin_base_archive has multiple architectures $darwin_arches"
  355.         for darwin_arch in  $darwin_arches ; do
  356.           mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
  357.           lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
  358.           cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
  359.           func_extract_an_archive "`pwd`" "${darwin_base_archive}"
  360.           cd "$darwin_curdir"
  361.           $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
  362.         done # $darwin_arches
  363.       ## Okay now we have a bunch of thin objects, gotta fatten them up :)
  364.         darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP`
  365.         darwin_file=
  366.         darwin_files=
  367.         for darwin_file in $darwin_filelist; do
  368.           darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
  369.           lipo -create -output "$darwin_file" $darwin_files
  370.         done # $darwin_filelist
  371.         ${rm}r unfat-$$
  372.         cd "$darwin_orig_dir"
  373.       else
  374.         cd "$darwin_orig_dir"
  375.          func_extract_an_archive "$my_xdir" "$my_xabs"
  376.       fi # $darwin_arches
  377.     fi # $run
  378.     ;;
  379.       *)
  380.         func_extract_an_archive "$my_xdir" "$my_xabs"
  381.         ;;
  382.       esac
  383.       my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
  384.     done
  385.     func_extract_archives_result="$my_oldobjs"
  386. }
  387. # End of Shell function definitions
  388. #####################################
  389.  
  390. # Darwin sucks
  391. eval std_shrext=\"$shrext_cmds\"
  392.  
  393. disable_libs=no
  394.  
  395. # Parse our command line options once, thoroughly.
  396. while test "$#" -gt 0
  397. do
  398.   arg="$1"
  399.   shift
  400.  
  401.   case $arg in
  402.   -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
  403.   *) optarg= ;;
  404.   esac
  405.  
  406.   # If the previous option needs an argument, assign it.
  407.   if test -n "$prev"; then
  408.     case $prev in
  409.     execute_dlfiles)
  410.       execute_dlfiles="$execute_dlfiles $arg"
  411.       ;;
  412.     tag)
  413.       tagname="$arg"
  414.       preserve_args="${preserve_args}=$arg"
  415.  
  416.       # Check whether tagname contains only valid characters
  417.       case $tagname in
  418.       *[!-_A-Za-z0-9,/]*)
  419.     $echo "$progname: invalid tag name: $tagname" 1>&2
  420.     exit $EXIT_FAILURE
  421.     ;;
  422.       esac
  423.  
  424.       case $tagname in
  425.       CC)
  426.     # Don't test for the "default" C tag, as we know, it's there, but
  427.     # not specially marked.
  428.     ;;
  429.       *)
  430.     if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then
  431.       taglist="$taglist $tagname"
  432.       # Evaluate the configuration.
  433.       eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`"
  434.     else
  435.       $echo "$progname: ignoring unknown tag $tagname" 1>&2
  436.     fi
  437.     ;;
  438.       esac
  439.       ;;
  440.     *)
  441.       eval "$prev=\$arg"
  442.       ;;
  443.     esac
  444.  
  445.     prev=
  446.     prevopt=
  447.     continue
  448.   fi
  449.  
  450.   # Have we seen a non-optional argument yet?
  451.   case $arg in
  452.   --help)
  453.     show_help=yes
  454.     ;;
  455.  
  456.   --version)
  457.     $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
  458.     $echo
  459.     $echo "Copyright (C) 2005  Free Software Foundation, Inc."
  460.     $echo "This is free software; see the source for copying conditions.  There is NO"
  461.     $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
  462.     exit $?
  463.     ;;
  464.  
  465.   --config)
  466.     ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath
  467.     # Now print the configurations for the tags.
  468.     for tagname in $taglist; do
  469.       ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath"
  470.     done
  471.     exit $?
  472.     ;;
  473.  
  474.   --debug)
  475.     $echo "$progname: enabling shell trace mode"
  476.     set -x
  477.     preserve_args="$preserve_args $arg"
  478.     ;;
  479.  
  480.   --dry-run | -n)
  481.     run=:
  482.     ;;
  483.  
  484.   --features)
  485.     $echo "host: $host"
  486.     if test "$build_libtool_libs" = yes; then
  487.       $echo "enable shared libraries"
  488.     else
  489.       $echo "disable shared libraries"
  490.     fi
  491.     if test "$build_old_libs" = yes; then
  492.       $echo "enable static libraries"
  493.     else
  494.       $echo "disable static libraries"
  495.     fi
  496.     exit $?
  497.     ;;
  498.  
  499.   --finish) mode="finish" ;;
  500.  
  501.   --mode) prevopt="--mode" prev=mode ;;
  502.   --mode=*) mode="$optarg" ;;
  503.  
  504.   --preserve-dup-deps) duplicate_deps="yes" ;;
  505.  
  506.   --quiet | --silent)
  507.     show=:
  508.     preserve_args="$preserve_args $arg"
  509.     ;;
  510.  
  511.   --tag)
  512.     prevopt="--tag"
  513.     prev=tag
  514.     preserve_args="$preserve_args --tag"
  515.     ;;
  516.   --tag=*)
  517.     set tag "$optarg" ${1+"$@"}
  518.     shift
  519.     prev=tag
  520.     preserve_args="$preserve_args --tag"
  521.     ;;
  522.  
  523.   -dlopen)
  524.     prevopt="-dlopen"
  525.     prev=execute_dlfiles
  526.     ;;
  527.  
  528.   -*)
  529.     $echo "$modename: unrecognized option \`$arg'" 1>&2
  530.     $echo "$help" 1>&2
  531.     exit $EXIT_FAILURE
  532.     ;;
  533.  
  534.   *)
  535.     nonopt="$arg"
  536.     break
  537.     ;;
  538.   esac
  539. done
  540.  
  541. if test -n "$prevopt"; then
  542.   $echo "$modename: option \`$prevopt' requires an argument" 1>&2
  543.   $echo "$help" 1>&2
  544.   exit $EXIT_FAILURE
  545. fi
  546.  
  547. case $disable_libs in
  548. no) 
  549.   ;;
  550. shared)
  551.   build_libtool_libs=no
  552.   build_old_libs=yes
  553.   ;;
  554. static)
  555.   build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
  556.   ;;
  557. esac
  558.  
  559. # If this variable is set in any of the actions, the command in it
  560. # will be execed at the end.  This prevents here-documents from being
  561. # left over by shells.
  562. exec_cmd=
  563.  
  564. if test -z "$show_help"; then
  565.  
  566.   # Infer the operation mode.
  567.   if test -z "$mode"; then
  568.     $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
  569.     $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2
  570.     case $nonopt in
  571.     *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*)
  572.       mode=link
  573.       for arg
  574.       do
  575.     case $arg in
  576.     -c)
  577.        mode=compile
  578.        break
  579.        ;;
  580.     esac
  581.       done
  582.       ;;
  583.     *db | *dbx | *strace | *truss)
  584.       mode=execute
  585.       ;;
  586.     *install*|cp|mv)
  587.       mode=install
  588.       ;;
  589.     *rm)
  590.       mode=uninstall
  591.       ;;
  592.     *)
  593.       # If we have no mode, but dlfiles were specified, then do execute mode.
  594.       test -n "$execute_dlfiles" && mode=execute
  595.  
  596.       # Just use the default operation mode.
  597.       if test -z "$mode"; then
  598.     if test -n "$nonopt"; then
  599.       $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
  600.     else
  601.       $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
  602.     fi
  603.       fi
  604.       ;;
  605.     esac
  606.   fi
  607.  
  608.   # Only execute mode is allowed to have -dlopen flags.
  609.   if test -n "$execute_dlfiles" && test "$mode" != execute; then
  610.     $echo "$modename: unrecognized option \`-dlopen'" 1>&2
  611.     $echo "$help" 1>&2
  612.     exit $EXIT_FAILURE
  613.   fi
  614.  
  615.   # Change the help message to a mode-specific one.
  616.   generic_help="$help"
  617.   help="Try \`$modename --help --mode=$mode' for more information."
  618.  
  619.   # These modes are in order of execution frequency so that they run quickly.
  620.   case $mode in
  621.   # libtool compile mode
  622.   compile)
  623.     modename="$modename: compile"
  624.     # Get the compilation command and the source file.
  625.     base_compile=
  626.     srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
  627.     suppress_opt=yes
  628.     suppress_output=
  629.     arg_mode=normal
  630.     libobj=
  631.     later=
  632.  
  633.     for arg
  634.     do
  635.       case $arg_mode in
  636.       arg  )
  637.     # do not "continue".  Instead, add this to base_compile
  638.     lastarg="$arg"
  639.     arg_mode=normal
  640.     ;;
  641.  
  642.       target )
  643.     libobj="$arg"
  644.     arg_mode=normal
  645.     continue
  646.     ;;
  647.  
  648.       normal )
  649.     # Accept any command-line options.
  650.     case $arg in
  651.     -o)
  652.       if test -n "$libobj" ; then
  653.         $echo "$modename: you cannot specify \`-o' more than once" 1>&2
  654.         exit $EXIT_FAILURE
  655.       fi
  656.       arg_mode=target
  657.       continue
  658.       ;;
  659.  
  660.     -static | -prefer-pic | -prefer-non-pic)
  661.       later="$later $arg"
  662.       continue
  663.       ;;
  664.  
  665.     -no-suppress)
  666.       suppress_opt=no
  667.       continue
  668.       ;;
  669.  
  670.     -Xcompiler)
  671.       arg_mode=arg  #  the next one goes into the "base_compile" arg list
  672.       continue      #  The current "srcfile" will either be retained or
  673.       ;;            #  replaced later.  I would guess that would be a bug.
  674.  
  675.     -Wc,*)
  676.       args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
  677.       lastarg=
  678.       save_ifs="$IFS"; IFS=','
  679.        for arg in $args; do
  680.         IFS="$save_ifs"
  681.  
  682.         # Double-quote args containing other shell metacharacters.
  683.         # Many Bourne shells cannot handle close brackets correctly
  684.         # in scan sets, so we specify it separately.
  685.         case $arg in
  686.           *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \    ]*|*]*|"")
  687.           arg="\"$arg\""
  688.           ;;
  689.         esac
  690.         lastarg="$lastarg $arg"
  691.       done
  692.       IFS="$save_ifs"
  693.       lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
  694.  
  695.       # Add the arguments to base_compile.
  696.       base_compile="$base_compile $lastarg"
  697.       continue
  698.       ;;
  699.  
  700.     * )
  701.       # Accept the current argument as the source file.
  702.       # The previous "srcfile" becomes the current argument.
  703.       #
  704.       lastarg="$srcfile"
  705.       srcfile="$arg"
  706.       ;;
  707.     esac  #  case $arg
  708.     ;;
  709.       esac    #  case $arg_mode
  710.  
  711.       # Aesthetically quote the previous argument.
  712.       lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
  713.  
  714.       case $lastarg in
  715.       # Double-quote args containing other shell metacharacters.
  716.       # Many Bourne shells cannot handle close brackets correctly
  717.       # in scan sets, and some SunOS ksh mistreat backslash-escaping
  718.       # in scan sets (worked around with variable expansion),
  719.       # and furthermore cannot handle '|' '&' '(' ')' in scan sets 
  720.       # at all, so we specify them separately.
  721.       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \    ]*|*]*|"")
  722.     lastarg="\"$lastarg\""
  723.     ;;
  724.       esac
  725.  
  726.       base_compile="$base_compile $lastarg"
  727.     done # for arg
  728.  
  729.     case $arg_mode in
  730.     arg)
  731.       $echo "$modename: you must specify an argument for -Xcompile"
  732.       exit $EXIT_FAILURE
  733.       ;;
  734.     target)
  735.       $echo "$modename: you must specify a target with \`-o'" 1>&2
  736.       exit $EXIT_FAILURE
  737.       ;;
  738.     *)
  739.       # Get the name of the library object.
  740.       [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
  741.       ;;
  742.     esac
  743.  
  744.     # Recognize several different file suffixes.
  745.     # If the user specifies -o file.o, it is replaced with file.lo
  746.     xform='[cCFSifmso]'
  747.     case $libobj in
  748.     *.ada) xform=ada ;;
  749.     *.adb) xform=adb ;;
  750.     *.ads) xform=ads ;;
  751.     *.asm) xform=asm ;;
  752.     *.c++) xform=c++ ;;
  753.     *.cc) xform=cc ;;
  754.     *.ii) xform=ii ;;
  755.     *.class) xform=class ;;
  756.     *.cpp) xform=cpp ;;
  757.     *.cxx) xform=cxx ;;
  758.     *.f90) xform=f90 ;;
  759.     *.for) xform=for ;;
  760.     *.java) xform=java ;;
  761.     esac
  762.  
  763.     libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
  764.  
  765.     case $libobj in
  766.     *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
  767.     *)
  768.       $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
  769.       exit $EXIT_FAILURE
  770.       ;;
  771.     esac
  772.  
  773.     func_infer_tag $base_compile
  774.  
  775.     for arg in $later; do
  776.       case $arg in
  777.       -static)
  778.     build_old_libs=yes
  779.     continue
  780.     ;;
  781.  
  782.       -prefer-pic)
  783.     pic_mode=yes
  784.     continue
  785.     ;;
  786.  
  787.       -prefer-non-pic)
  788.     pic_mode=no
  789.     continue
  790.     ;;
  791.       esac
  792.     done
  793.  
  794.     qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"`
  795.     case $qlibobj in
  796.       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \    ]*|*]*|"")
  797.     qlibobj="\"$qlibobj\"" ;;
  798.     esac
  799.     test "X$libobj" != "X$qlibobj" \
  800.     && $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"'     &()|`$[]' \
  801.     && $echo "$modename: libobj name \`$libobj' may not contain shell special characters."
  802.     objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
  803.     xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
  804.     if test "X$xdir" = "X$obj"; then
  805.       xdir=
  806.     else
  807.       xdir=$xdir/
  808.     fi
  809.     lobj=${xdir}$objdir/$objname
  810.  
  811.     if test -z "$base_compile"; then
  812.       $echo "$modename: you must specify a compilation command" 1>&2
  813.       $echo "$help" 1>&2
  814.       exit $EXIT_FAILURE
  815.     fi
  816.  
  817.     # Delete any leftover library objects.
  818.     if test "$build_old_libs" = yes; then
  819.       removelist="$obj $lobj $libobj ${libobj}T"
  820.     else
  821.       removelist="$lobj $libobj ${libobj}T"
  822.     fi
  823.  
  824.     $run $rm $removelist
  825.     trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
  826.  
  827.     # On Cygwin there's no "real" PIC flag so we must build both object types
  828.     case $host_os in
  829.     cygwin* | mingw* | pw32* | os2*)
  830.       pic_mode=default
  831.       ;;
  832.     esac
  833.     if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
  834.       # non-PIC code in shared libraries is not supported
  835.       pic_mode=default
  836.     fi
  837.  
  838.     # Calculate the filename of the output object if compiler does
  839.     # not support -o with -c
  840.     if test "$compiler_c_o" = no; then
  841.       output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
  842.       lockfile="$output_obj.lock"
  843.       removelist="$removelist $output_obj $lockfile"
  844.       trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
  845.     else
  846.       output_obj=
  847.       need_locks=no
  848.       lockfile=
  849.     fi
  850.  
  851.     # Lock this critical section if it is needed
  852.     # We use this script file to make the link, it avoids creating a new file
  853.     if test "$need_locks" = yes; then
  854.       until $run ln "$progpath" "$lockfile" 2>/dev/null; do
  855.     $show "Waiting for $lockfile to be removed"
  856.     sleep 2
  857.       done
  858.     elif test "$need_locks" = warn; then
  859.       if test -f "$lockfile"; then
  860.     $echo "\
  861. *** ERROR, $lockfile exists and contains:
  862. `cat $lockfile 2>/dev/null`
  863.  
  864. This indicates that another process is trying to use the same
  865. temporary object file, and libtool could not work around it because
  866. your compiler does not support \`-c' and \`-o' together.  If you
  867. repeat this compilation, it may succeed, by chance, but you had better
  868. avoid parallel builds (make -j) in this platform, or get a better
  869. compiler."
  870.  
  871.     $run $rm $removelist
  872.     exit $EXIT_FAILURE
  873.       fi
  874.       $echo "$srcfile" > "$lockfile"
  875.     fi
  876.  
  877.     if test -n "$fix_srcfile_path"; then
  878.       eval srcfile=\"$fix_srcfile_path\"
  879.     fi
  880.     qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"`
  881.     case $qsrcfile in
  882.       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \    ]*|*]*|"")
  883.       qsrcfile="\"$qsrcfile\"" ;;
  884.     esac
  885.  
  886.     $run $rm "$libobj" "${libobj}T"
  887.  
  888.     # Create a libtool object file (analogous to a ".la" file),
  889.     # but don't create it if we're doing a dry run.
  890.     test -z "$run" && cat > ${libobj}T <<EOF
  891. # $libobj - a libtool object file
  892. # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
  893. #
  894. # Please DO NOT delete this file!
  895. # It is necessary for linking the library.
  896.  
  897. # Name of the PIC object.
  898. EOF
  899.  
  900.     # Only build a PIC object if we are building libtool libraries.
  901.     if test "$build_libtool_libs" = yes; then
  902.       # Without this assignment, base_compile gets emptied.
  903.       fbsd_hideous_sh_bug=$base_compile
  904.  
  905.       if test "$pic_mode" != no; then
  906.     command="$base_compile $qsrcfile $pic_flag"
  907.       else
  908.     # Don't build PIC code
  909.     command="$base_compile $qsrcfile"
  910.       fi
  911.  
  912.       if test ! -d "${xdir}$objdir"; then
  913.     $show "$mkdir ${xdir}$objdir"
  914.     $run $mkdir ${xdir}$objdir
  915.     exit_status=$?
  916.     if test "$exit_status" -ne 0 && test ! -d "${xdir}$objdir"; then
  917.       exit $exit_status
  918.     fi
  919.       fi
  920.  
  921.       if test -z "$output_obj"; then
  922.     # Place PIC objects in $objdir
  923.     command="$command -o $lobj"
  924.       fi
  925.  
  926.       $run $rm "$lobj" "$output_obj"
  927.  
  928.       $show "$command"
  929.       if $run eval "$command"; then :
  930.       else
  931.     test -n "$output_obj" && $run $rm $removelist
  932.     exit $EXIT_FAILURE
  933.       fi
  934.  
  935.       if test "$need_locks" = warn &&
  936.      test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
  937.     $echo "\
  938. *** ERROR, $lockfile contains:
  939. `cat $lockfile 2>/dev/null`
  940.  
  941. but it should contain:
  942. $srcfile
  943.  
  944. This indicates that another process is trying to use the same
  945. temporary object file, and libtool could not work around it because
  946. your compiler does not support \`-c' and \`-o' together.  If you
  947. repeat this compilation, it may succeed, by chance, but you had better
  948. avoid parallel builds (make -j) in this platform, or get a better
  949. compiler."
  950.  
  951.     $run $rm $removelist
  952.     exit $EXIT_FAILURE
  953.       fi
  954.  
  955.       # Just move the object if needed, then go on to compile the next one
  956.       if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
  957.     $show "$mv $output_obj $lobj"
  958.     if $run $mv $output_obj $lobj; then :
  959.     else
  960.       error=$?
  961.       $run $rm $removelist
  962.       exit $error
  963.     fi
  964.       fi
  965.  
  966.       # Append the name of the PIC object to the libtool object file.
  967.       test -z "$run" && cat >> ${libobj}T <<EOF
  968. pic_object='$objdir/$objname'
  969.  
  970. EOF
  971.  
  972.       # Allow error messages only from the first compilation.
  973.       if test "$suppress_opt" = yes; then
  974.         suppress_output=' >/dev/null 2>&1'
  975.       fi
  976.     else
  977.       # No PIC object so indicate it doesn't exist in the libtool
  978.       # object file.
  979.       test -z "$run" && cat >> ${libobj}T <<EOF
  980. pic_object=none
  981.  
  982. EOF
  983.     fi
  984.  
  985.     # Only build a position-dependent object if we build old libraries.
  986.     if test "$build_old_libs" = yes; then
  987.       if test "$pic_mode" != yes; then
  988.     # Don't build PIC code
  989.     command="$base_compile $qsrcfile"
  990.       else
  991.     command="$base_compile $qsrcfile $pic_flag"
  992.       fi
  993.       if test "$compiler_c_o" = yes; then
  994.     command="$command -o $obj"
  995.       fi
  996.  
  997.       # Suppress compiler output if we already did a PIC compilation.
  998.       command="$command$suppress_output"
  999.       $run $rm "$obj" "$output_obj"
  1000.       $show "$command"
  1001.       if $run eval "$command"; then :
  1002.       else
  1003.     $run $rm $removelist
  1004.     exit $EXIT_FAILURE
  1005.       fi
  1006.  
  1007.       if test "$need_locks" = warn &&
  1008.      test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
  1009.     $echo "\
  1010. *** ERROR, $lockfile contains:
  1011. `cat $lockfile 2>/dev/null`
  1012.  
  1013. but it should contain:
  1014. $srcfile
  1015.  
  1016. This indicates that another process is trying to use the same
  1017. temporary object file, and libtool could not work around it because
  1018. your compiler does not support \`-c' and \`-o' together.  If you
  1019. repeat this compilation, it may succeed, by chance, but you had better
  1020. avoid parallel builds (make -j) in this platform, or get a better
  1021. compiler."
  1022.  
  1023.     $run $rm $removelist
  1024.     exit $EXIT_FAILURE
  1025.       fi
  1026.  
  1027.       # Just move the object if needed
  1028.       if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
  1029.     $show "$mv $output_obj $obj"
  1030.     if $run $mv $output_obj $obj; then :
  1031.     else
  1032.       error=$?
  1033.       $run $rm $removelist
  1034.       exit $error
  1035.     fi
  1036.       fi
  1037.  
  1038.       # Append the name of the non-PIC object the libtool object file.
  1039.       # Only append if the libtool object file exists.
  1040.       test -z "$run" && cat >> ${libobj}T <<EOF
  1041. # Name of the non-PIC object.
  1042. non_pic_object='$objname'
  1043.  
  1044. EOF
  1045.     else
  1046.       # Append the name of the non-PIC object the libtool object file.
  1047.       # Only append if the libtool object file exists.
  1048.       test -z "$run" && cat >> ${libobj}T <<EOF
  1049. # Name of the non-PIC object.
  1050. non_pic_object=none
  1051.  
  1052. EOF
  1053.     fi
  1054.  
  1055.     $run $mv "${libobj}T" "${libobj}"
  1056.  
  1057.     # Unlock the critical section if it was locked
  1058.     if test "$need_locks" != no; then
  1059.       $run $rm "$lockfile"
  1060.     fi
  1061.  
  1062.     exit $EXIT_SUCCESS
  1063.     ;;
  1064.  
  1065.   # libtool link mode
  1066.   link | relink)
  1067.     modename="$modename: link"
  1068.     case $host in
  1069.     *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
  1070.       # It is impossible to link a dll without this setting, and
  1071.       # we shouldn't force the makefile maintainer to figure out
  1072.       # which system we are compiling for in order to pass an extra
  1073.       # flag for every libtool invocation.
  1074.       # allow_undefined=no
  1075.  
  1076.       # FIXME: Unfortunately, there are problems with the above when trying
  1077.       # to make a dll which has undefined symbols, in which case not
  1078.       # even a static library is built.  For now, we need to specify
  1079.       # -no-undefined on the libtool link line when we can be certain
  1080.       # that all symbols are satisfied, otherwise we get a static library.
  1081.       allow_undefined=yes
  1082.       ;;
  1083.     *)
  1084.       allow_undefined=yes
  1085.       ;;
  1086.     esac
  1087.     libtool_args="$nonopt"
  1088.     base_compile="$nonopt $@"
  1089.     compile_command="$nonopt"
  1090.     finalize_command="$nonopt"
  1091.  
  1092.     compile_rpath=
  1093.     finalize_rpath=
  1094.     compile_shlibpath=
  1095.     finalize_shlibpath=
  1096.     convenience=
  1097.     old_convenience=
  1098.     deplibs=
  1099.     old_deplibs=
  1100.     compiler_flags=
  1101.     linker_flags=
  1102.     dllsearchpath=
  1103.     lib_search_path=`pwd`
  1104.     inst_prefix_dir=
  1105.  
  1106.     avoid_version=no
  1107.     dlfiles=
  1108.     dlprefiles=
  1109.     dlself=no
  1110.     export_dynamic=no
  1111.     export_symbols=
  1112.     export_symbols_regex=
  1113.     generated=
  1114.     libobjs=
  1115.     ltlibs=
  1116.     module=no
  1117.     no_install=no
  1118.     objs=
  1119.     non_pic_objects=
  1120.     notinst_path= # paths that contain not-installed libtool libraries
  1121.     precious_files_regex=
  1122.     prefer_static_libs=no
  1123.     preload=no
  1124.     prev=
  1125.     prevarg=
  1126.     release=
  1127.     rpath=
  1128.     xrpath=
  1129.     perm_rpath=
  1130.     temp_rpath=
  1131.     thread_safe=no
  1132.     vinfo=
  1133.     vinfo_number=no
  1134.  
  1135.     func_infer_tag $base_compile
  1136.  
  1137.     # We need to know -static, to get the right output filenames.
  1138.     for arg
  1139.     do
  1140.       case $arg in
  1141.       -all-static | -static)
  1142.     if test "X$arg" = "X-all-static"; then
  1143.       if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
  1144.         $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
  1145.       fi
  1146.       if test -n "$link_static_flag"; then
  1147.         dlopen_self=$dlopen_self_static
  1148.       fi
  1149.       prefer_static_libs=yes
  1150.     else
  1151.       if test -z "$pic_flag" && test -n "$link_static_flag"; then
  1152.         dlopen_self=$dlopen_self_static
  1153.       fi
  1154.       prefer_static_libs=built
  1155.     fi
  1156.     build_libtool_libs=no
  1157.     build_old_libs=yes
  1158.     break
  1159.     ;;
  1160.       esac
  1161.     done
  1162.  
  1163.     # See if our shared archives depend on static archives.
  1164.     test -n "$old_archive_from_new_cmds" && build_old_libs=yes
  1165.  
  1166.     # Go through the arguments, transforming them on the way.
  1167.     while test "$#" -gt 0; do
  1168.       arg="$1"
  1169.       shift
  1170.       case $arg in
  1171.       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \    ]*|*]*|"")
  1172.     qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
  1173.     ;;
  1174.       *) qarg=$arg ;;
  1175.       esac
  1176.       libtool_args="$libtool_args $qarg"
  1177.  
  1178.       # If the previous option needs an argument, assign it.
  1179.       if test -n "$prev"; then
  1180.     case $prev in
  1181.     output)
  1182.       compile_command="$compile_command @OUTPUT@"
  1183.       finalize_command="$finalize_command @OUTPUT@"
  1184.       ;;
  1185.     esac
  1186.  
  1187.     case $prev in
  1188.     dlfiles|dlprefiles)
  1189.       if test "$preload" = no; then
  1190.         # Add the symbol object into the linking commands.
  1191.         compile_command="$compile_command @SYMFILE@"
  1192.         finalize_command="$finalize_command @SYMFILE@"
  1193.         preload=yes
  1194.       fi
  1195.       case $arg in
  1196.       *.la | *.lo) ;;  # We handle these cases below.
  1197.       force)
  1198.         if test "$dlself" = no; then
  1199.           dlself=needless
  1200.           export_dynamic=yes
  1201.         fi
  1202.         prev=
  1203.         continue
  1204.         ;;
  1205.       self)
  1206.         if test "$prev" = dlprefiles; then
  1207.           dlself=yes
  1208.         elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
  1209.           dlself=yes
  1210.         else
  1211.           dlself=needless
  1212.           export_dynamic=yes
  1213.         fi
  1214.         prev=
  1215.         continue
  1216.         ;;
  1217.       *)
  1218.         if test "$prev" = dlfiles; then
  1219.           dlfiles="$dlfiles $arg"
  1220.         else
  1221.           dlprefiles="$dlprefiles $arg"
  1222.         fi
  1223.         prev=
  1224.         continue
  1225.         ;;
  1226.       esac
  1227.       ;;
  1228.     expsyms)
  1229.       export_symbols="$arg"
  1230.       if test ! -f "$arg"; then
  1231.         $echo "$modename: symbol file \`$arg' does not exist"
  1232.         exit $EXIT_FAILURE
  1233.       fi
  1234.       prev=
  1235.       continue
  1236.       ;;
  1237.     expsyms_regex)
  1238.       export_symbols_regex="$arg"
  1239.       prev=
  1240.       continue
  1241.       ;;
  1242.     inst_prefix)
  1243.       inst_prefix_dir="$arg"
  1244.       prev=
  1245.       continue
  1246.       ;;
  1247.     precious_regex)
  1248.       precious_files_regex="$arg"
  1249.       prev=
  1250.       continue
  1251.       ;;
  1252.     release)
  1253.       release="-$arg"
  1254.       prev=
  1255.       continue
  1256.       ;;
  1257.     objectlist)
  1258.       if test -f "$arg"; then
  1259.         save_arg=$arg
  1260.         moreargs=
  1261.         for fil in `cat $save_arg`
  1262.         do
  1263. #          moreargs="$moreargs $fil"
  1264.           arg=$fil
  1265.           # A libtool-controlled object.
  1266.  
  1267.           # Check to see that this really is a libtool object.
  1268.           if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
  1269.         pic_object=
  1270.         non_pic_object=
  1271.  
  1272.         # Read the .lo file
  1273.         # If there is no directory component, then add one.
  1274.         case $arg in
  1275.         */* | *\\*) . $arg ;;
  1276.         *) . ./$arg ;;
  1277.         esac
  1278.  
  1279.         if test -z "$pic_object" || \
  1280.            test -z "$non_pic_object" ||
  1281.            test "$pic_object" = none && \
  1282.            test "$non_pic_object" = none; then
  1283.           $echo "$modename: cannot find name of object for \`$arg'" 1>&2
  1284.           exit $EXIT_FAILURE
  1285.         fi
  1286.  
  1287.         # Extract subdirectory from the argument.
  1288.         xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
  1289.         if test "X$xdir" = "X$arg"; then
  1290.           xdir=
  1291.         else
  1292.           xdir="$xdir/"
  1293.         fi
  1294.  
  1295.         if test "$pic_object" != none; then
  1296.           # Prepend the subdirectory the object is found in.
  1297.           pic_object="$xdir$pic_object"
  1298.  
  1299.           if test "$prev" = dlfiles; then
  1300.             if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
  1301.               dlfiles="$dlfiles $pic_object"
  1302.               prev=
  1303.               continue
  1304.             else
  1305.               # If libtool objects are unsupported, then we need to preload.
  1306.               prev=dlprefiles
  1307.             fi
  1308.           fi
  1309.  
  1310.           # CHECK ME:  I think I busted this.  -Ossama
  1311.           if test "$prev" = dlprefiles; then
  1312.             # Preload the old-style object.
  1313.             dlprefiles="$dlprefiles $pic_object"
  1314.             prev=
  1315.           fi
  1316.  
  1317.           # A PIC object.
  1318.           libobjs="$libobjs $pic_object"
  1319.           arg="$pic_object"
  1320.         fi
  1321.  
  1322.         # Non-PIC object.
  1323.         if test "$non_pic_object" != none; then
  1324.           # Prepend the subdirectory the object is found in.
  1325.           non_pic_object="$xdir$non_pic_object"
  1326.  
  1327.           # A standard non-PIC object
  1328.           non_pic_objects="$non_pic_objects $non_pic_object"
  1329.           if test -z "$pic_object" || test "$pic_object" = none ; then
  1330.             arg="$non_pic_object"
  1331.           fi
  1332.         else
  1333.           # If the PIC object exists, use it instead.
  1334.           # $xdir was prepended to $pic_object above.
  1335.           non_pic_object="$pic_object"
  1336.           non_pic_objects="$non_pic_objects $non_pic_object"
  1337.         fi
  1338.           else
  1339.         # Only an error if not doing a dry-run.
  1340.         if test -z "$run"; then
  1341.           $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
  1342.           exit $EXIT_FAILURE
  1343.         else
  1344.           # Dry-run case.
  1345.  
  1346.           # Extract subdirectory from the argument.
  1347.           xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
  1348.           if test "X$xdir" = "X$arg"; then
  1349.             xdir=
  1350.           else
  1351.             xdir="$xdir/"
  1352.           fi
  1353.  
  1354.           pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
  1355.           non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
  1356.           libobjs="$libobjs $pic_object"
  1357.           non_pic_objects="$non_pic_objects $non_pic_object"
  1358.         fi
  1359.           fi
  1360.         done
  1361.       else
  1362.         $echo "$modename: link input file \`$save_arg' does not exist"
  1363.         exit $EXIT_FAILURE
  1364.       fi
  1365.       arg=$save_arg
  1366.       prev=
  1367.       continue
  1368.       ;;
  1369.     rpath | xrpath)
  1370.       # We need an absolute path.
  1371.       case $arg in
  1372.       [\\/]* | [A-Za-z]:[\\/]*) ;;
  1373.       *)
  1374.         $echo "$modename: only absolute run-paths are allowed" 1>&2
  1375.         exit $EXIT_FAILURE
  1376.         ;;
  1377.       esac
  1378.       if test "$prev" = rpath; then
  1379.         case "$rpath " in
  1380.         *" $arg "*) ;;
  1381.         *) rpath="$rpath $arg" ;;
  1382.         esac
  1383.       else
  1384.         case "$xrpath " in
  1385.         *" $arg "*) ;;
  1386.         *) xrpath="$xrpath $arg" ;;
  1387.         esac
  1388.       fi
  1389.       prev=
  1390.       continue
  1391.       ;;
  1392.     xcompiler)
  1393.       compiler_flags="$compiler_flags $qarg"
  1394.       prev=
  1395.       compile_command="$compile_command $qarg"
  1396.       finalize_command="$finalize_command $qarg"
  1397.       continue
  1398.       ;;
  1399.     xlinker)
  1400.       linker_flags="$linker_flags $qarg"
  1401.       compiler_flags="$compiler_flags $wl$qarg"
  1402.       prev=
  1403.       compile_command="$compile_command $wl$qarg"
  1404.       finalize_command="$finalize_command $wl$qarg"
  1405.       continue
  1406.       ;;
  1407.     xcclinker)
  1408.       linker_flags="$linker_flags $qarg"
  1409.       compiler_flags="$compiler_flags $qarg"
  1410.       prev=
  1411.       compile_command="$compile_command $qarg"
  1412.       finalize_command="$finalize_command $qarg"
  1413.       continue
  1414.       ;;
  1415.     shrext)
  1416.         shrext_cmds="$arg"
  1417.       prev=
  1418.       continue
  1419.       ;;
  1420.     darwin_framework|darwin_framework_skip)
  1421.       test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg"
  1422.       compile_command="$compile_command $arg"
  1423.       finalize_command="$finalize_command $arg"
  1424.       prev=
  1425.       continue
  1426.       ;;
  1427.     *)
  1428.       eval "$prev=\"\$arg\""
  1429.       prev=
  1430.       continue
  1431.       ;;
  1432.     esac
  1433.       fi # test -n "$prev"
  1434.  
  1435.       prevarg="$arg"
  1436.  
  1437.       case $arg in
  1438.       -all-static)
  1439.     if test -n "$link_static_flag"; then
  1440.       compile_command="$compile_command $link_static_flag"
  1441.       finalize_command="$finalize_command $link_static_flag"
  1442.     fi
  1443.     continue
  1444.     ;;
  1445.  
  1446.       -allow-undefined)
  1447.     # FIXME: remove this flag sometime in the future.
  1448.     $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
  1449.     continue
  1450.     ;;
  1451.  
  1452.       -avoid-version)
  1453.     avoid_version=yes
  1454.     continue
  1455.     ;;
  1456.  
  1457.       -dlopen)
  1458.     prev=dlfiles
  1459.     continue
  1460.     ;;
  1461.  
  1462.       -dlpreopen)
  1463.     prev=dlprefiles
  1464.     continue
  1465.     ;;
  1466.  
  1467.       -export-dynamic)
  1468.     export_dynamic=yes
  1469.     continue
  1470.     ;;
  1471.  
  1472.       -export-symbols | -export-symbols-regex)
  1473.     if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
  1474.       $echo "$modename: more than one -exported-symbols argument is not allowed"
  1475.       exit $EXIT_FAILURE
  1476.     fi
  1477.     if test "X$arg" = "X-export-symbols"; then
  1478.       prev=expsyms
  1479.     else
  1480.       prev=expsyms_regex
  1481.     fi
  1482.     continue
  1483.     ;;
  1484.  
  1485.       -framework|-arch|-isysroot)
  1486.     case " $CC " in
  1487.       *" ${arg} ${1} "* | *" ${arg}    ${1} "*) 
  1488.         prev=darwin_framework_skip ;;
  1489.       *) compiler_flags="$compiler_flags $arg"
  1490.          prev=darwin_framework ;;
  1491.     esac
  1492.     compile_command="$compile_command $arg"
  1493.     finalize_command="$finalize_command $arg"
  1494.     continue
  1495.     ;;
  1496.  
  1497.       -inst-prefix-dir)
  1498.     prev=inst_prefix
  1499.     continue
  1500.     ;;
  1501.  
  1502.       # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
  1503.       # so, if we see these flags be careful not to treat them like -L
  1504.       -L[A-Z][A-Z]*:*)
  1505.     case $with_gcc/$host in
  1506.     no/*-*-irix* | /*-*-irix*)
  1507.       compile_command="$compile_command $arg"
  1508.       finalize_command="$finalize_command $arg"
  1509.       ;;
  1510.     esac
  1511.     continue
  1512.     ;;
  1513.  
  1514.       -L*)
  1515.     dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
  1516.     # We need an absolute path.
  1517.     case $dir in
  1518.     [\\/]* | [A-Za-z]:[\\/]*) ;;
  1519.     *)
  1520.       absdir=`cd "$dir" && pwd`
  1521.       if test -z "$absdir"; then
  1522.         $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
  1523.         absdir="$dir"
  1524.         notinst_path="$notinst_path $dir"
  1525.       fi
  1526.       dir="$absdir"
  1527.       ;;
  1528.     esac
  1529.     case "$deplibs " in
  1530.     *" -L$dir "*) ;;
  1531.     *)
  1532.       deplibs="$deplibs -L$dir"
  1533.       lib_search_path="$lib_search_path $dir"
  1534.       ;;
  1535.     esac
  1536.     case $host in
  1537.     *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
  1538.       testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'`
  1539.       case :$dllsearchpath: in
  1540.       *":$dir:"*) ;;
  1541.       *) dllsearchpath="$dllsearchpath:$dir";;
  1542.       esac
  1543.       case :$dllsearchpath: in
  1544.       *":$testbindir:"*) ;;
  1545.       *) dllsearchpath="$dllsearchpath:$testbindir";;
  1546.       esac
  1547.       ;;
  1548.     esac
  1549.     continue
  1550.     ;;
  1551.  
  1552.       -l*)
  1553.     if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
  1554.       case $host in
  1555.       *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*)
  1556.         # These systems don't actually have a C or math library (as such)
  1557.         continue
  1558.         ;;
  1559.       *-*-os2*)
  1560.         # These systems don't actually have a C library (as such)
  1561.         test "X$arg" = "X-lc" && continue
  1562.         ;;
  1563.       *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
  1564.         # Do not include libc due to us having libc/libc_r.
  1565.         test "X$arg" = "X-lc" && continue
  1566.         ;;
  1567.       *-*-rhapsody* | *-*-darwin1.[012])
  1568.         # Rhapsody C and math libraries are in the System framework
  1569.         deplibs="$deplibs -framework System"
  1570.         continue
  1571.         ;;
  1572.       *-*-sco3.2v5* | *-*-sco5v6*)
  1573.         # Causes problems with __ctype
  1574.         test "X$arg" = "X-lc" && continue
  1575.         ;;
  1576.       *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
  1577.         # Compiler inserts libc in the correct place for threads to work
  1578.         test "X$arg" = "X-lc" && continue
  1579.         ;;
  1580.       esac
  1581.     elif test "X$arg" = "X-lc_r"; then
  1582.      case $host in
  1583.      *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
  1584.        # Do not include libc_r directly, use -pthread flag.
  1585.        continue
  1586.        ;;
  1587.      esac
  1588.     fi
  1589.     deplibs="$deplibs $arg"
  1590.     continue
  1591.     ;;
  1592.  
  1593.       # Tru64 UNIX uses -model [arg] to determine the layout of C++
  1594.       # classes, name mangling, and exception handling.
  1595.       -model)
  1596.     compile_command="$compile_command $arg"
  1597.     compiler_flags="$compiler_flags $arg"
  1598.     finalize_command="$finalize_command $arg"
  1599.     prev=xcompiler
  1600.     continue
  1601.     ;;
  1602.  
  1603.      -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
  1604.     compiler_flags="$compiler_flags $arg"
  1605.     compile_command="$compile_command $arg"
  1606.     finalize_command="$finalize_command $arg"
  1607.     continue
  1608.     ;;
  1609.  
  1610.       -module)
  1611.     module=yes
  1612.     continue
  1613.     ;;
  1614.  
  1615.       # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
  1616.       # -r[0-9][0-9]* specifies the processor on the SGI compiler
  1617.       # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
  1618.       # +DA*, +DD* enable 64-bit mode on the HP compiler
  1619.       # -q* pass through compiler args for the IBM compiler
  1620.       # -m* pass through architecture-specific compiler args for GCC
  1621.       # -m*, -t[45]*, -txscale* pass through architecture-specific
  1622.       # compiler args for GCC
  1623.       # -pg pass through profiling flag for GCC
  1624.       # @file GCC response files
  1625.       -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*|-pg| \
  1626.       -t[45]*|-txscale*|@*)
  1627.  
  1628.     # Unknown arguments in both finalize_command and compile_command need
  1629.     # to be aesthetically quoted because they are evaled later.
  1630.     arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
  1631.     case $arg in
  1632.     *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \    ]*|*]*|"")
  1633.       arg="\"$arg\""
  1634.       ;;
  1635.     esac
  1636.         compile_command="$compile_command $arg"
  1637.         finalize_command="$finalize_command $arg"
  1638.         compiler_flags="$compiler_flags $arg"
  1639.         continue
  1640.         ;;
  1641.  
  1642.       -shrext)
  1643.     prev=shrext
  1644.     continue
  1645.     ;;
  1646.  
  1647.       -no-fast-install)
  1648.     fast_install=no
  1649.     continue
  1650.     ;;
  1651.  
  1652.       -no-install)
  1653.     case $host in
  1654.     *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
  1655.       # The PATH hackery in wrapper scripts is required on Windows
  1656.       # in order for the loader to find any dlls it needs.
  1657.       $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
  1658.       $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
  1659.       fast_install=no
  1660.       ;;
  1661.     *) no_install=yes ;;
  1662.     esac
  1663.     continue
  1664.     ;;
  1665.  
  1666.       -no-undefined)
  1667.     allow_undefined=no
  1668.     continue
  1669.     ;;
  1670.  
  1671.       -objectlist)
  1672.     prev=objectlist
  1673.     continue
  1674.     ;;
  1675.  
  1676.       -o) prev=output ;;
  1677.  
  1678.       -precious-files-regex)
  1679.     prev=precious_regex
  1680.     continue
  1681.     ;;
  1682.  
  1683.       -release)
  1684.     prev=release
  1685.     continue
  1686.     ;;
  1687.  
  1688.       -rpath)
  1689.     prev=rpath
  1690.     continue
  1691.     ;;
  1692.  
  1693.       -R)
  1694.     prev=xrpath
  1695.     continue
  1696.     ;;
  1697.  
  1698.       -R*)
  1699.     dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
  1700.     # We need an absolute path.
  1701.     case $dir in
  1702.     [\\/]* | [A-Za-z]:[\\/]*) ;;
  1703.     *)
  1704.       $echo "$modename: only absolute run-paths are allowed" 1>&2
  1705.       exit $EXIT_FAILURE
  1706.       ;;
  1707.     esac
  1708.     case "$xrpath " in
  1709.     *" $dir "*) ;;
  1710.     *) xrpath="$xrpath $dir" ;;
  1711.     esac
  1712.     continue
  1713.     ;;
  1714.  
  1715.       -static)
  1716.     # The effects of -static are defined in a previous loop.
  1717.     # We used to do the same as -all-static on platforms that
  1718.     # didn't have a PIC flag, but the assumption that the effects
  1719.     # would be equivalent was wrong.  It would break on at least
  1720.     # Digital Unix and AIX.
  1721.     continue
  1722.     ;;
  1723.  
  1724.       -thread-safe)
  1725.     thread_safe=yes
  1726.     continue
  1727.     ;;
  1728.  
  1729.       -version-info)
  1730.     prev=vinfo
  1731.     continue
  1732.     ;;
  1733.       -version-number)
  1734.     prev=vinfo
  1735.     vinfo_number=yes
  1736.     continue
  1737.     ;;
  1738.  
  1739.       -Wc,*)
  1740.     args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
  1741.     arg=
  1742.     save_ifs="$IFS"; IFS=','
  1743.     for flag in $args; do
  1744.       IFS="$save_ifs"
  1745.       case $flag in
  1746.         *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \    ]*|*]*|"")
  1747.         flag="\"$flag\""
  1748.         ;;
  1749.       esac
  1750.       arg="$arg $wl$flag"
  1751.       compiler_flags="$compiler_flags $flag"
  1752.     done
  1753.     IFS="$save_ifs"
  1754.     arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
  1755.     ;;
  1756.  
  1757.       -Wl,*)
  1758.     args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
  1759.     arg=
  1760.     save_ifs="$IFS"; IFS=','
  1761.     for flag in $args; do
  1762.       IFS="$save_ifs"
  1763.       case $flag in
  1764.         *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \    ]*|*]*|"")
  1765.         flag="\"$flag\""
  1766.         ;;
  1767.       esac
  1768.       arg="$arg $wl$flag"
  1769.       compiler_flags="$compiler_flags $wl$flag"
  1770.       linker_flags="$linker_flags $flag"
  1771.     done
  1772.     IFS="$save_ifs"
  1773.     arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
  1774.     ;;
  1775.  
  1776.       -Xcompiler)
  1777.     prev=xcompiler
  1778.     continue
  1779.     ;;
  1780.  
  1781.       -Xlinker)
  1782.     prev=xlinker
  1783.     continue
  1784.     ;;
  1785.  
  1786.       -XCClinker)
  1787.     prev=xcclinker
  1788.     continue
  1789.     ;;
  1790.  
  1791.       # Some other compiler flag.
  1792.       -* | +*)
  1793.     # Unknown arguments in both finalize_command and compile_command need
  1794.     # to be aesthetically quoted because they are evaled later.
  1795.     arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
  1796.     case $arg in
  1797.     *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \    ]*|*]*|"")
  1798.       arg="\"$arg\""
  1799.       ;;
  1800.     esac
  1801.     ;;
  1802.  
  1803.       *.$objext)
  1804.     # A standard object.
  1805.     objs="$objs $arg"
  1806.     ;;
  1807.  
  1808.       *.lo)
  1809.     # A libtool-controlled object.
  1810.  
  1811.     # Check to see that this really is a libtool object.
  1812.     if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
  1813.       pic_object=
  1814.       non_pic_object=
  1815.  
  1816.       # Read the .lo file
  1817.       # If there is no directory component, then add one.
  1818.       case $arg in
  1819.       */* | *\\*) . $arg ;;
  1820.       *) . ./$arg ;;
  1821.       esac
  1822.  
  1823.       if test -z "$pic_object" || \
  1824.          test -z "$non_pic_object" ||
  1825.          test "$pic_object" = none && \
  1826.          test "$non_pic_object" = none; then
  1827.         $echo "$modename: cannot find name of object for \`$arg'" 1>&2
  1828.         exit $EXIT_FAILURE
  1829.       fi
  1830.  
  1831.       # Extract subdirectory from the argument.
  1832.       xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
  1833.       if test "X$xdir" = "X$arg"; then
  1834.         xdir=
  1835.        else
  1836.         xdir="$xdir/"
  1837.       fi
  1838.  
  1839.       if test "$pic_object" != none; then
  1840.         # Prepend the subdirectory the object is found in.
  1841.         pic_object="$xdir$pic_object"
  1842.  
  1843.         if test "$prev" = dlfiles; then
  1844.           if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
  1845.         dlfiles="$dlfiles $pic_object"
  1846.         prev=
  1847.         continue
  1848.           else
  1849.         # If libtool objects are unsupported, then we need to preload.
  1850.         prev=dlprefiles
  1851.           fi
  1852.         fi
  1853.  
  1854.         # CHECK ME:  I think I busted this.  -Ossama
  1855.         if test "$prev" = dlprefiles; then
  1856.           # Preload the old-style object.
  1857.           dlprefiles="$dlprefiles $pic_object"
  1858.           prev=
  1859.         fi
  1860.  
  1861.         # A PIC object.
  1862.         libobjs="$libobjs $pic_object"
  1863.         arg="$pic_object"
  1864.       fi
  1865.  
  1866.       # Non-PIC object.
  1867.       if test "$non_pic_object" != none; then
  1868.         # Prepend the subdirectory the object is found in.
  1869.         non_pic_object="$xdir$non_pic_object"
  1870.  
  1871.         # A standard non-PIC object
  1872.         non_pic_objects="$non_pic_objects $non_pic_object"
  1873.         if test -z "$pic_object" || test "$pic_object" = none ; then
  1874.           arg="$non_pic_object"
  1875.         fi
  1876.       else
  1877.         # If the PIC object exists, use it instead.
  1878.         # $xdir was prepended to $pic_object above.
  1879.         non_pic_object="$pic_object"
  1880.         non_pic_objects="$non_pic_objects $non_pic_object"
  1881.       fi
  1882.     else
  1883.       # Only an error if not doing a dry-run.
  1884.       if test -z "$run"; then
  1885.         $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
  1886.         exit $EXIT_FAILURE
  1887.       else
  1888.         # Dry-run case.
  1889.  
  1890.         # Extract subdirectory from the argument.
  1891.         xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
  1892.         if test "X$xdir" = "X$arg"; then
  1893.           xdir=
  1894.         else
  1895.           xdir="$xdir/"
  1896.         fi
  1897.  
  1898.         pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
  1899.         non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
  1900.         libobjs="$libobjs $pic_object"
  1901.         non_pic_objects="$non_pic_objects $non_pic_object"
  1902.       fi
  1903.     fi
  1904.     ;;
  1905.  
  1906.       *.$libext)
  1907.     # An archive.
  1908.     deplibs="$deplibs $arg"
  1909.     old_deplibs="$old_deplibs $arg"
  1910.     continue
  1911.     ;;
  1912.  
  1913.       *.la)
  1914.     # A libtool-controlled library.
  1915.  
  1916.     if test "$prev" = dlfiles; then
  1917.       # This library was specified with -dlopen.
  1918.       dlfiles="$dlfiles $arg"
  1919.       prev=
  1920.     elif test "$prev" = dlprefiles; then
  1921.       # The library was specified with -dlpreopen.
  1922.       dlprefiles="$dlprefiles $arg"
  1923.       prev=
  1924.     else
  1925.       deplibs="$deplibs $arg"
  1926.     fi
  1927.     continue
  1928.     ;;
  1929.  
  1930.       # Some other compiler argument.
  1931.       *)
  1932.     # Unknown arguments in both finalize_command and compile_command need
  1933.     # to be aesthetically quoted because they are evaled later.
  1934.     arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
  1935.     case $arg in
  1936.     *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \    ]*|*]*|"")
  1937.       arg="\"$arg\""
  1938.       ;;
  1939.     esac
  1940.     ;;
  1941.       esac # arg
  1942.  
  1943.       # Now actually substitute the argument into the commands.
  1944.       if test -n "$arg"; then
  1945.     compile_command="$compile_command $arg"
  1946.     finalize_command="$finalize_command $arg"
  1947.       fi
  1948.     done # argument parsing loop
  1949.  
  1950.     if test -n "$prev"; then
  1951.       $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
  1952.       $echo "$help" 1>&2
  1953.       exit $EXIT_FAILURE
  1954.     fi
  1955.  
  1956.     if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
  1957.       eval arg=\"$export_dynamic_flag_spec\"
  1958.       compile_command="$compile_command $arg"
  1959.       finalize_command="$finalize_command $arg"
  1960.     fi
  1961.  
  1962.     oldlibs=
  1963.     # calculate the name of the file, without its directory
  1964.     outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
  1965.     libobjs_save="$libobjs"
  1966.  
  1967.     if test -n "$shlibpath_var"; then
  1968.       # get the directories listed in $shlibpath_var
  1969.       eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
  1970.     else
  1971.       shlib_search_path=
  1972.     fi
  1973.     eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
  1974.     eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
  1975.  
  1976.     output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
  1977.     if test "X$output_objdir" = "X$output"; then
  1978.       output_objdir="$objdir"
  1979.     else
  1980.       output_objdir="$output_objdir/$objdir"
  1981.     fi
  1982.     # Create the object directory.
  1983.     if test ! -d "$output_objdir"; then
  1984.       $show "$mkdir $output_objdir"
  1985.       $run $mkdir $output_objdir
  1986.       exit_status=$?
  1987.       if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then
  1988.     exit $exit_status
  1989.       fi
  1990.     fi
  1991.  
  1992.     # Determine the type of output
  1993.     case $output in
  1994.     "")
  1995.       $echo "$modename: you must specify an output file" 1>&2
  1996.       $echo "$help" 1>&2
  1997.       exit $EXIT_FAILURE
  1998.       ;;
  1999.     *.$libext) linkmode=oldlib ;;
  2000.     *.lo | *.$objext) linkmode=obj ;;
  2001.     *.la) linkmode=lib ;;
  2002.     *) linkmode=prog ;; # Anything else should be a program.
  2003.     esac
  2004.  
  2005.     case $host in
  2006.     *cygwin* | *mingw* | *pw32*)
  2007.       # don't eliminate duplications in $postdeps and $predeps
  2008.       duplicate_compiler_generated_deps=yes
  2009.       ;;
  2010.     *)
  2011.       duplicate_compiler_generated_deps=$duplicate_deps
  2012.       ;;
  2013.     esac
  2014.     specialdeplibs=
  2015.  
  2016.     libs=
  2017.     # Find all interdependent deplibs by searching for libraries
  2018.     # that are linked more than once (e.g. -la -lb -la)
  2019.     for deplib in $deplibs; do
  2020.       if test "X$duplicate_deps" = "Xyes" ; then
  2021.     case "$libs " in
  2022.     *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
  2023.     esac
  2024.       fi
  2025.       libs="$libs $deplib"
  2026.     done
  2027.  
  2028.     if test "$linkmode" = lib; then
  2029.       libs="$predeps $libs $compiler_lib_search_path $postdeps"
  2030.  
  2031.       # Compute libraries that are listed more than once in $predeps
  2032.       # $postdeps and mark them as special (i.e., whose duplicates are
  2033.       # not to be eliminated).
  2034.       pre_post_deps=
  2035.       if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then
  2036.     for pre_post_dep in $predeps $postdeps; do
  2037.       case "$pre_post_deps " in
  2038.       *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
  2039.       esac
  2040.       pre_post_deps="$pre_post_deps $pre_post_dep"
  2041.     done
  2042.       fi
  2043.       pre_post_deps=
  2044.     fi
  2045.  
  2046.     deplibs=
  2047.     newdependency_libs=
  2048.     newlib_search_path=
  2049.     need_relink=no # whether we're linking any uninstalled libtool libraries
  2050.     notinst_deplibs= # not-installed libtool libraries
  2051.     case $linkmode in
  2052.     lib)
  2053.     passes="conv link"
  2054.     for file in $dlfiles $dlprefiles; do
  2055.       case $file in
  2056.       *.la) ;;
  2057.       *)
  2058.         $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
  2059.         exit $EXIT_FAILURE
  2060.         ;;
  2061.       esac
  2062.     done
  2063.     ;;
  2064.     prog)
  2065.     compile_deplibs=
  2066.     finalize_deplibs=
  2067.     alldeplibs=no
  2068.     newdlfiles=
  2069.     newdlprefiles=
  2070.     passes="conv scan dlopen dlpreopen link"
  2071.     ;;
  2072.     *)  passes="conv"
  2073.     ;;
  2074.     esac
  2075.     for pass in $passes; do
  2076.       if test "$linkmode,$pass" = "lib,link" ||
  2077.      test "$linkmode,$pass" = "prog,scan"; then
  2078.     libs="$deplibs"
  2079.     deplibs=
  2080.       fi
  2081.       if test "$linkmode" = prog; then
  2082.     case $pass in
  2083.     dlopen) libs="$dlfiles" ;;
  2084.     dlpreopen) libs="$dlprefiles" ;;
  2085.     link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
  2086.     esac
  2087.       fi
  2088.       if test "$pass" = dlopen; then
  2089.     # Collect dlpreopened libraries
  2090.     save_deplibs="$deplibs"
  2091.     deplibs=
  2092.       fi
  2093.       for deplib in $libs; do
  2094.     lib=
  2095.     found=no
  2096.     case $deplib in
  2097.     -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
  2098.       if test "$linkmode,$pass" = "prog,link"; then
  2099.         compile_deplibs="$deplib $compile_deplibs"
  2100.         finalize_deplibs="$deplib $finalize_deplibs"
  2101.       else
  2102.         compiler_flags="$compiler_flags $deplib"
  2103.       fi
  2104.       continue
  2105.       ;;
  2106.     -l*)
  2107.       if test "$linkmode" != lib && test "$linkmode" != prog; then
  2108.         $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
  2109.         continue
  2110.       fi
  2111.       name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
  2112.       for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
  2113.         for search_ext in .la $std_shrext .so .a; do
  2114.           # Search the libtool library
  2115.           lib="$searchdir/lib${name}${search_ext}"
  2116.           if test -f "$lib"; then
  2117.         if test "$search_ext" = ".la"; then
  2118.           found=yes
  2119.         else
  2120.           found=no
  2121.         fi
  2122.         break 2
  2123.           fi
  2124.         done
  2125.       done
  2126.       if test "$found" != yes; then
  2127.         # deplib doesn't seem to be a libtool library
  2128.         if test "$linkmode,$pass" = "prog,link"; then
  2129.           compile_deplibs="$deplib $compile_deplibs"
  2130.           finalize_deplibs="$deplib $finalize_deplibs"
  2131.         else
  2132.           deplibs="$deplib $deplibs"
  2133.           test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
  2134.         fi
  2135.         continue
  2136.       else # deplib is a libtool library
  2137.         # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
  2138.         # We need to do some special things here, and not later.
  2139.         if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
  2140.           case " $predeps $postdeps " in
  2141.           *" $deplib "*)
  2142.         if (${SED} -e '2q' $lib |
  2143.                     grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
  2144.           library_names=
  2145.           old_library=
  2146.           case $lib in
  2147.           */* | *\\*) . $lib ;;
  2148.           *) . ./$lib ;;
  2149.           esac
  2150.           for l in $old_library $library_names; do
  2151.             ll="$l"
  2152.           done
  2153.           if test "X$ll" = "X$old_library" ; then # only static version available
  2154.             found=no
  2155.             ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
  2156.             test "X$ladir" = "X$lib" && ladir="."
  2157.             lib=$ladir/$old_library
  2158.             if test "$linkmode,$pass" = "prog,link"; then
  2159.               compile_deplibs="$deplib $compile_deplibs"
  2160.               finalize_deplibs="$deplib $finalize_deplibs"
  2161.             else
  2162.               deplibs="$deplib $deplibs"
  2163.               test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
  2164.             fi
  2165.             continue
  2166.           fi
  2167.         fi
  2168.             ;;
  2169.           *) ;;
  2170.           esac
  2171.         fi
  2172.       fi
  2173.       ;; # -l
  2174.     -L*)
  2175.       case $linkmode in
  2176.       lib)
  2177.         deplibs="$deplib $deplibs"
  2178.         test "$pass" = conv && continue
  2179.         newdependency_libs="$deplib $newdependency_libs"
  2180.         newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
  2181.         ;;
  2182.       prog)
  2183.         if test "$pass" = conv; then
  2184.           deplibs="$deplib $deplibs"
  2185.           continue
  2186.         fi
  2187.         if test "$pass" = scan; then
  2188.           deplibs="$deplib $deplibs"
  2189.         else
  2190.           compile_deplibs="$deplib $compile_deplibs"
  2191.           finalize_deplibs="$deplib $finalize_deplibs"
  2192.         fi
  2193.         newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
  2194.         ;;
  2195.       *)
  2196.         $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
  2197.         ;;
  2198.       esac # linkmode
  2199.       continue
  2200.       ;; # -L
  2201.     -R*)
  2202.       if test "$pass" = link; then
  2203.         dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
  2204.         # Make sure the xrpath contains only unique directories.
  2205.         case "$xrpath " in
  2206.         *" $dir "*) ;;
  2207.         *) xrpath="$xrpath $dir" ;;
  2208.         esac
  2209.       fi
  2210.       deplibs="$deplib $deplibs"
  2211.       continue
  2212.       ;;
  2213.     *.la) lib="$deplib" ;;
  2214.     *.$libext)
  2215.       if test "$pass" = conv; then
  2216.         deplibs="$deplib $deplibs"
  2217.         continue
  2218.       fi
  2219.       case $linkmode in
  2220.       lib)
  2221.         valid_a_lib=no
  2222.         case $deplibs_check_method in
  2223.           match_pattern*)
  2224.         set dummy $deplibs_check_method
  2225.             match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
  2226.         if eval $echo \"$deplib\" 2>/dev/null \
  2227.             | $SED 10q \
  2228.             | $EGREP "$match_pattern_regex" > /dev/null; then
  2229.           valid_a_lib=yes
  2230.         fi
  2231.         ;;
  2232.           pass_all)
  2233.         valid_a_lib=yes
  2234.         ;;
  2235.             esac
  2236.         if test "$valid_a_lib" != yes; then
  2237.           $echo
  2238.           $echo "*** Warning: Trying to link with static lib archive $deplib."
  2239.           $echo "*** I have the capability to make that library automatically link in when"
  2240.           $echo "*** you link to this library.  But I can only do this if you have a"
  2241.           $echo "*** shared version of the library, which you do not appear to have"
  2242.           $echo "*** because the file extensions .$libext of this argument makes me believe"
  2243.           $echo "*** that it is just a static archive that I should not used here."
  2244.         else
  2245.           $echo
  2246.           $echo "*** Warning: Linking the shared library $output against the"
  2247.           $echo "*** static library $deplib is not portable!"
  2248.           deplibs="$deplib $deplibs"
  2249.         fi
  2250.         continue
  2251.         ;;
  2252.       prog)
  2253.         if test "$pass" != link; then
  2254.           deplibs="$deplib $deplibs"
  2255.         else
  2256.           compile_deplibs="$deplib $compile_deplibs"
  2257.           finalize_deplibs="$deplib $finalize_deplibs"
  2258.         fi
  2259.         continue
  2260.         ;;
  2261.       esac # linkmode
  2262.       ;; # *.$libext
  2263.     *.lo | *.$objext)
  2264.       if test "$pass" = conv; then
  2265.         deplibs="$deplib $deplibs"
  2266.       elif test "$linkmode" = prog; then
  2267.         if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
  2268.           # If there is no dlopen support or we're linking statically,
  2269.           # we need to preload.
  2270.           newdlprefiles="$newdlprefiles $deplib"
  2271.           compile_deplibs="$deplib $compile_deplibs"
  2272.           finalize_deplibs="$deplib $finalize_deplibs"
  2273.         else
  2274.           newdlfiles="$newdlfiles $deplib"
  2275.         fi
  2276.       fi
  2277.       continue
  2278.       ;;
  2279.     %DEPLIBS%)
  2280.       alldeplibs=yes
  2281.       continue
  2282.       ;;
  2283.     esac # case $deplib
  2284.     if test "$found" = yes || test -f "$lib"; then :
  2285.     else
  2286.       $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2
  2287.       exit $EXIT_FAILURE
  2288.     fi
  2289.  
  2290.     # Check to see that this really is a libtool archive.
  2291.     if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
  2292.     else
  2293.       $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
  2294.       exit $EXIT_FAILURE
  2295.     fi
  2296.  
  2297.     ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
  2298.     test "X$ladir" = "X$lib" && ladir="."
  2299.  
  2300.     dlname=
  2301.     dlopen=
  2302.     dlpreopen=
  2303.     libdir=
  2304.     library_names=
  2305.     old_library=
  2306.     # If the library was installed with an old release of libtool,
  2307.     # it will not redefine variables installed, or shouldnotlink
  2308.     installed=yes
  2309.     shouldnotlink=no
  2310.     avoidtemprpath=
  2311.  
  2312.  
  2313.     # Read the .la file
  2314.     case $lib in
  2315.     */* | *\\*) . $lib ;;
  2316.     *) . ./$lib ;;
  2317.     esac
  2318.  
  2319.     if test "$linkmode,$pass" = "lib,link" ||
  2320.        test "$linkmode,$pass" = "prog,scan" ||
  2321.        { test "$linkmode" != prog && test "$linkmode" != lib; }; then
  2322.       test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
  2323.       test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
  2324.     fi
  2325.  
  2326.     if test "$pass" = conv; then
  2327.       # Only check for convenience libraries
  2328.       deplibs="$lib $deplibs"
  2329.       if test -z "$libdir"; then
  2330.         if test -z "$old_library"; then
  2331.           $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
  2332.           exit $EXIT_FAILURE
  2333.         fi
  2334.         # It is a libtool convenience library, so add in its objects.
  2335.         convenience="$convenience $ladir/$objdir/$old_library"
  2336.         old_convenience="$old_convenience $ladir/$objdir/$old_library"
  2337.         tmp_libs=
  2338.         for deplib in $dependency_libs; do
  2339.           deplibs="$deplib $deplibs"
  2340.               if test "X$duplicate_deps" = "Xyes" ; then
  2341.             case "$tmp_libs " in
  2342.             *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
  2343.             esac
  2344.               fi
  2345.           tmp_libs="$tmp_libs $deplib"
  2346.         done
  2347.       elif test "$linkmode" != prog && test "$linkmode" != lib; then
  2348.         $echo "$modename: \`$lib' is not a convenience library" 1>&2
  2349.         exit $EXIT_FAILURE
  2350.       fi
  2351.       continue
  2352.     fi # $pass = conv
  2353.  
  2354.  
  2355.     # Get the name of the library we link against.
  2356.     linklib=
  2357.     for l in $old_library $library_names; do
  2358.       linklib="$l"
  2359.     done
  2360.     if test -z "$linklib"; then
  2361.       $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
  2362.       exit $EXIT_FAILURE
  2363.     fi
  2364.  
  2365.     # This library was specified with -dlopen.
  2366.     if test "$pass" = dlopen; then
  2367.       if test -z "$libdir"; then
  2368.         $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
  2369.         exit $EXIT_FAILURE
  2370.       fi
  2371.       if test -z "$dlname" ||
  2372.          test "$dlopen_support" != yes ||
  2373.          test "$build_libtool_libs" = no; then
  2374.         # If there is no dlname, no dlopen support or we're linking
  2375.         # statically, we need to preload.  We also need to preload any
  2376.         # dependent libraries so libltdl's deplib preloader doesn't
  2377.         # bomb out in the load deplibs phase.
  2378.         dlprefiles="$dlprefiles $lib $dependency_libs"
  2379.       else
  2380.         newdlfiles="$newdlfiles $lib"
  2381.       fi
  2382.       continue
  2383.     fi # $pass = dlopen
  2384.  
  2385.     # We need an absolute path.
  2386.     case $ladir in
  2387.     [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
  2388.     *)
  2389.       abs_ladir=`cd "$ladir" && pwd`
  2390.       if test -z "$abs_ladir"; then
  2391.         $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
  2392.         $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
  2393.         abs_ladir="$ladir"
  2394.       fi
  2395.       ;;
  2396.     esac
  2397.     laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
  2398.  
  2399.     # Find the relevant object directory and library name.
  2400.     if test "X$installed" = Xyes; then
  2401.       if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
  2402.         $echo "$modename: warning: library \`$lib' was moved." 1>&2
  2403.         dir="$ladir"
  2404.         absdir="$abs_ladir"
  2405.         libdir="$abs_ladir"
  2406.       else
  2407.         dir="$libdir"
  2408.         absdir="$libdir"
  2409.       fi
  2410.       test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
  2411.     else
  2412.       if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
  2413.         dir="$ladir"
  2414.         absdir="$abs_ladir"
  2415.         # Remove this search path later
  2416.         notinst_path="$notinst_path $abs_ladir"
  2417.       else
  2418.         dir="$ladir/$objdir"
  2419.         absdir="$abs_ladir/$objdir"
  2420.         # Remove this search path later
  2421.         notinst_path="$notinst_path $abs_ladir"
  2422.       fi
  2423.     fi # $installed = yes
  2424.     name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
  2425.  
  2426.     # This library was specified with -dlpreopen.
  2427.     if test "$pass" = dlpreopen; then
  2428.       if test -z "$libdir"; then
  2429.         $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
  2430.         exit $EXIT_FAILURE
  2431.       fi
  2432.       # Prefer using a static library (so that no silly _DYNAMIC symbols
  2433.       # are required to link).
  2434.       if test -n "$old_library"; then
  2435.         newdlprefiles="$newdlprefiles $dir/$old_library"
  2436.       # Otherwise, use the dlname, so that lt_dlopen finds it.
  2437.       elif test -n "$dlname"; then
  2438.         newdlprefiles="$newdlprefiles $dir/$dlname"
  2439.       else
  2440.         newdlprefiles="$newdlprefiles $dir/$linklib"
  2441.       fi
  2442.     fi # $pass = dlpreopen
  2443.  
  2444.     if test -z "$libdir"; then
  2445.       # Link the convenience library
  2446.       if test "$linkmode" = lib; then
  2447.         deplibs="$dir/$old_library $deplibs"
  2448.       elif test "$linkmode,$pass" = "prog,link"; then
  2449.         compile_deplibs="$dir/$old_library $compile_deplibs"
  2450.         finalize_deplibs="$dir/$old_library $finalize_deplibs"
  2451.       else
  2452.         deplibs="$lib $deplibs" # used for prog,scan pass
  2453.       fi
  2454.       continue
  2455.     fi
  2456.  
  2457.  
  2458.     if test "$linkmode" = prog && test "$pass" != link; then
  2459.       newlib_search_path="$newlib_search_path $ladir"
  2460.       deplibs="$lib $deplibs"
  2461.  
  2462.       linkalldeplibs=no
  2463.       if test "$link_all_deplibs" != no || test -z "$library_names" ||
  2464.          test "$build_libtool_libs" = no; then
  2465.         linkalldeplibs=yes
  2466.       fi
  2467.  
  2468.       tmp_libs=
  2469.       for deplib in $dependency_libs; do
  2470.         case $deplib in
  2471.         -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
  2472.         esac
  2473.         # Need to link against all dependency_libs?
  2474.         if test "$linkalldeplibs" = yes; then
  2475.           deplibs="$deplib $deplibs"
  2476.         else
  2477.           # Need to hardcode shared library paths
  2478.           # or/and link against static libraries
  2479.           newdependency_libs="$deplib $newdependency_libs"
  2480.         fi
  2481.         if test "X$duplicate_deps" = "Xyes" ; then
  2482.           case "$tmp_libs " in
  2483.           *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
  2484.           esac
  2485.         fi
  2486.         tmp_libs="$tmp_libs $deplib"
  2487.       done # for deplib
  2488.       continue
  2489.     fi # $linkmode = prog...
  2490.  
  2491.     if test "$linkmode,$pass" = "prog,link"; then
  2492.       if test -n "$library_names" &&
  2493.          { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
  2494.         # We need to hardcode the library path
  2495.         if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
  2496.           # Make sure the rpath contains only unique directories.
  2497.           case "$temp_rpath " in
  2498.           *" $dir "*) ;;
  2499.           *" $absdir "*) ;;
  2500.           *) temp_rpath="$temp_rpath $absdir" ;;
  2501.           esac
  2502.         fi
  2503.  
  2504.         # Hardcode the library path.
  2505.         # Skip directories that are in the system default run-time
  2506.         # search path.
  2507.         case " $sys_lib_dlsearch_path " in
  2508.         *" $absdir "*) ;;
  2509.         *)
  2510.           case "$compile_rpath " in
  2511.           *" $absdir "*) ;;
  2512.           *) compile_rpath="$compile_rpath $absdir"
  2513.           esac
  2514.           ;;
  2515.         esac
  2516.         case " $sys_lib_dlsearch_path " in
  2517.         *" $libdir "*) ;;
  2518.         *)
  2519.           case "$finalize_rpath " in
  2520.           *" $libdir "*) ;;
  2521.           *) finalize_rpath="$finalize_rpath $libdir"
  2522.           esac
  2523.           ;;
  2524.         esac
  2525.       fi # $linkmode,$pass = prog,link...
  2526.  
  2527.       if test "$alldeplibs" = yes &&
  2528.          { test "$deplibs_check_method" = pass_all ||
  2529.            { test "$build_libtool_libs" = yes &&
  2530.          test -n "$library_names"; }; }; then
  2531.         # We only need to search for static libraries
  2532.         continue
  2533.       fi
  2534.     fi
  2535.  
  2536.     link_static=no # Whether the deplib will be linked statically
  2537.     use_static_libs=$prefer_static_libs
  2538.     if test "$use_static_libs" = built && test "$installed" = yes ; then
  2539.       use_static_libs=no
  2540.     fi
  2541.     if test -n "$library_names" &&
  2542.        { test "$use_static_libs" = no || test -z "$old_library"; }; then
  2543.       if test "$installed" = no; then
  2544.         notinst_deplibs="$notinst_deplibs $lib"
  2545.         need_relink=yes
  2546.       fi
  2547.       # This is a shared library
  2548.  
  2549.       # Warn about portability, can't link against -module's on
  2550.       # some systems (darwin)
  2551.       if test "$shouldnotlink" = yes && test "$pass" = link ; then
  2552.         $echo
  2553.         if test "$linkmode" = prog; then
  2554.           $echo "*** Warning: Linking the executable $output against the loadable module"
  2555.         else
  2556.           $echo "*** Warning: Linking the shared library $output against the loadable module"
  2557.         fi
  2558.         $echo "*** $linklib is not portable!"
  2559.       fi
  2560.       if test "$linkmode" = lib &&
  2561.          test "$hardcode_into_libs" = yes; then
  2562.         # Hardcode the library path.
  2563.         # Skip directories that are in the system default run-time
  2564.         # search path.
  2565.         case " $sys_lib_dlsearch_path " in
  2566.         *" $absdir "*) ;;
  2567.         *)
  2568.           case "$compile_rpath " in
  2569.           *" $absdir "*) ;;
  2570.           *) compile_rpath="$compile_rpath $absdir"
  2571.           esac
  2572.           ;;
  2573.         esac
  2574.         case " $sys_lib_dlsearch_path " in
  2575.         *" $libdir "*) ;;
  2576.         *)
  2577.           case "$finalize_rpath " in
  2578.           *" $libdir "*) ;;
  2579.           *) finalize_rpath="$finalize_rpath $libdir"
  2580.           esac
  2581.           ;;
  2582.         esac
  2583.       fi
  2584.  
  2585.       if test -n "$old_archive_from_expsyms_cmds"; then
  2586.         # figure out the soname
  2587.         set dummy $library_names
  2588.         realname="$2"
  2589.         shift; shift
  2590.         libname=`eval \\$echo \"$libname_spec\"`
  2591.         # use dlname if we got it. it's perfectly good, no?
  2592.         if test -n "$dlname"; then
  2593.           soname="$dlname"
  2594.         elif test -n "$soname_spec"; then
  2595.           # bleh windows
  2596.           case $host in
  2597.           *cygwin* | mingw*)
  2598.         major=`expr $current - $age`
  2599.         versuffix="-$major"
  2600.         ;;
  2601.           esac
  2602.           eval soname=\"$soname_spec\"
  2603.         else
  2604.           soname="$realname"
  2605.         fi
  2606.  
  2607.         # Make a new name for the extract_expsyms_cmds to use
  2608.         soroot="$soname"
  2609.         soname=`$echo $soroot | ${SED} -e 's/^.*\///'`
  2610.         newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
  2611.  
  2612.         # If the library has no export list, then create one now
  2613.         if test -f "$output_objdir/$soname-def"; then :
  2614.         else
  2615.           $show "extracting exported symbol list from \`$soname'"
  2616.           save_ifs="$IFS"; IFS='~'
  2617.           cmds=$extract_expsyms_cmds
  2618.           for cmd in $cmds; do
  2619.         IFS="$save_ifs"
  2620.         eval cmd=\"$cmd\"
  2621.         $show "$cmd"
  2622.         $run eval "$cmd" || exit $?
  2623.           done
  2624.           IFS="$save_ifs"
  2625.         fi
  2626.  
  2627.         # Create $newlib
  2628.         if test -f "$output_objdir/$newlib"; then :; else
  2629.           $show "generating import library for \`$soname'"
  2630.           save_ifs="$IFS"; IFS='~'
  2631.           cmds=$old_archive_from_expsyms_cmds
  2632.           for cmd in $cmds; do
  2633.         IFS="$save_ifs"
  2634.         eval cmd=\"$cmd\"
  2635.         $show "$cmd"
  2636.         $run eval "$cmd" || exit $?
  2637.           done
  2638.           IFS="$save_ifs"
  2639.         fi
  2640.         # make sure the library variables are pointing to the new library
  2641.         dir=$output_objdir
  2642.         linklib=$newlib
  2643.       fi # test -n "$old_archive_from_expsyms_cmds"
  2644.  
  2645.       if test "$linkmode" = prog || test "$mode" != relink; then
  2646.         add_shlibpath=
  2647.         add_dir=
  2648.         add=
  2649.         lib_linked=yes
  2650.         case $hardcode_action in
  2651.         immediate | unsupported)
  2652.           if test "$hardcode_direct" = no; then
  2653.         add="$dir/$linklib"
  2654.         case $host in
  2655.           *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
  2656.           *-*-sysv4*uw2*) add_dir="-L$dir" ;;
  2657.           *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
  2658.             *-*-unixware7*) add_dir="-L$dir" ;;
  2659.           *-*-darwin* )
  2660.             # if the lib is a module then we can not link against
  2661.             # it, someone is ignoring the new warnings I added
  2662.             if /usr/bin/file -L $add 2> /dev/null |
  2663.                       $EGREP ": [^:]* bundle" >/dev/null ; then
  2664.               $echo "** Warning, lib $linklib is a module, not a shared library"
  2665.               if test -z "$old_library" ; then
  2666.                 $echo
  2667.                 $echo "** And there doesn't seem to be a static archive available"
  2668.                 $echo "** The link will probably fail, sorry"
  2669.               else
  2670.                 add="$dir/$old_library"
  2671.               fi
  2672.             fi
  2673.         esac
  2674.           elif test "$hardcode_minus_L" = no; then
  2675.         case $host in
  2676.         *-*-sunos*) add_shlibpath="$dir" ;;
  2677.         esac
  2678.         add_dir="-L$dir"
  2679.         add="-l$name"
  2680.           elif test "$hardcode_shlibpath_var" = no; then
  2681.         add_shlibpath="$dir"
  2682.         add="-l$name"
  2683.           else
  2684.         lib_linked=no
  2685.           fi
  2686.           ;;
  2687.         relink)
  2688.           if test "$hardcode_direct" = yes; then
  2689.         add="$dir/$linklib"
  2690.           elif test "$hardcode_minus_L" = yes; then
  2691.         add_dir="-L$dir"
  2692.         # Try looking first in the location we're being installed to.
  2693.         if test -n "$inst_prefix_dir"; then
  2694.           case $libdir in
  2695.             [\\/]*)
  2696.               add_dir="$add_dir -L$inst_prefix_dir$libdir"
  2697.               ;;
  2698.           esac
  2699.         fi
  2700.         add="-l$name"
  2701.           elif test "$hardcode_shlibpath_var" = yes; then
  2702.         add_shlibpath="$dir"
  2703.         add="-l$name"
  2704.           else
  2705.         lib_linked=no
  2706.           fi
  2707.           ;;
  2708.         *) lib_linked=no ;;
  2709.         esac
  2710.  
  2711.         if test "$lib_linked" != yes; then
  2712.           $echo "$modename: configuration error: unsupported hardcode properties"
  2713.           exit $EXIT_FAILURE
  2714.         fi
  2715.  
  2716.         if test -n "$add_shlibpath"; then
  2717.           case :$compile_shlibpath: in
  2718.           *":$add_shlibpath:"*) ;;
  2719.           *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
  2720.           esac
  2721.         fi
  2722.         if test "$linkmode" = prog; then
  2723.           test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
  2724.           test -n "$add" && compile_deplibs="$add $compile_deplibs"
  2725.         else
  2726.           test -n "$add_dir" && deplibs="$add_dir $deplibs"
  2727.           test -n "$add" && deplibs="$add $deplibs"
  2728.           if test "$hardcode_direct" != yes && \
  2729.          test "$hardcode_minus_L" != yes && \
  2730.          test "$hardcode_shlibpath_var" = yes; then
  2731.         case :$finalize_shlibpath: in
  2732.         *":$libdir:"*) ;;
  2733.         *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
  2734.         esac
  2735.           fi
  2736.         fi
  2737.       fi
  2738.  
  2739.       if test "$linkmode" = prog || test "$mode" = relink; then
  2740.         add_shlibpath=
  2741.         add_dir=
  2742.         add=
  2743.         # Finalize command for both is simple: just hardcode it.
  2744.         if test "$hardcode_direct" = yes; then
  2745.           add="$libdir/$linklib"
  2746.         elif test "$hardcode_minus_L" = yes; then
  2747.           add_dir="-L$libdir"
  2748.           add="-l$name"
  2749.         elif test "$hardcode_shlibpath_var" = yes; then
  2750.           case :$finalize_shlibpath: in
  2751.           *":$libdir:"*) ;;
  2752.           *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
  2753.           esac
  2754.           add="-l$name"
  2755.         elif test "$hardcode_automatic" = yes; then
  2756.           if test -n "$inst_prefix_dir" &&
  2757.          test -f "$inst_prefix_dir$libdir/$linklib" ; then
  2758.             add="$inst_prefix_dir$libdir/$linklib"
  2759.           else
  2760.             add="$libdir/$linklib"
  2761.           fi
  2762.         else
  2763.           # We cannot seem to hardcode it, guess we'll fake it.
  2764.           add_dir="-L$libdir"
  2765.           # Try looking first in the location we're being installed to.
  2766.           if test -n "$inst_prefix_dir"; then
  2767.         case $libdir in
  2768.           [\\/]*)
  2769.             add_dir="$add_dir -L$inst_prefix_dir$libdir"
  2770.             ;;
  2771.         esac
  2772.           fi
  2773.           add="-l$name"
  2774.         fi
  2775.  
  2776.         if test "$linkmode" = prog; then
  2777.           test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
  2778.           test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
  2779.         else
  2780.           test -n "$add_dir" && deplibs="$add_dir $deplibs"
  2781.           test -n "$add" && deplibs="$add $deplibs"
  2782.         fi
  2783.       fi
  2784.     elif test "$linkmode" = prog; then
  2785.       # Here we assume that one of hardcode_direct or hardcode_minus_L
  2786.       # is not unsupported.  This is valid on all known static and
  2787.       # shared platforms.
  2788.       if test "$hardcode_direct" != unsupported; then
  2789.         test -n "$old_library" && linklib="$old_library"
  2790.         compile_deplibs="$dir/$linklib $compile_deplibs"
  2791.         finalize_deplibs="$dir/$linklib $finalize_deplibs"
  2792.       else
  2793.         compile_deplibs="-l$name -L$dir $compile_deplibs"
  2794.         finalize_deplibs="-l$name -L$dir $finalize_deplibs"
  2795.       fi
  2796.     elif test "$build_libtool_libs" = yes; then
  2797.       # Not a shared library
  2798.       if test "$deplibs_check_method" != pass_all; then
  2799.         # We're trying link a shared library against a static one
  2800.         # but the system doesn't support it.
  2801.  
  2802.         # Just print a warning and add the library to dependency_libs so
  2803.         # that the program can be linked against the static library.
  2804.         $echo
  2805.         $echo "*** Warning: This system can not link to static lib archive $lib."
  2806.         $echo "*** I have the capability to make that library automatically link in when"
  2807.         $echo "*** you link to this library.  But I can only do this if you have a"
  2808.         $echo "*** shared version of the library, which you do not appear to have."
  2809.         if test "$module" = yes; then
  2810.           $echo "*** But as you try to build a module library, libtool will still create "
  2811.           $echo "*** a static module, that should work as long as the dlopening application"
  2812.           $echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
  2813.           if test -z "$global_symbol_pipe"; then
  2814.         $echo
  2815.         $echo "*** However, this would only work if libtool was able to extract symbol"
  2816.         $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
  2817.         $echo "*** not find such a program.  So, this module is probably useless."
  2818.         $echo "*** \`nm' from GNU binutils and a full rebuild may help."
  2819.           fi
  2820.           if test "$build_old_libs" = no; then
  2821.         build_libtool_libs=module
  2822.         build_old_libs=yes
  2823.           else
  2824.         build_libtool_libs=no
  2825.           fi
  2826.         fi
  2827.       else
  2828.         deplibs="$dir/$old_library $deplibs"
  2829.         link_static=yes
  2830.       fi
  2831.     fi # link shared/static library?
  2832.  
  2833.     if test "$linkmode" = lib; then
  2834.       if test -n "$dependency_libs" &&
  2835.          { test "$hardcode_into_libs" != yes ||
  2836.            test "$build_old_libs" = yes ||
  2837.            test "$link_static" = yes; }; then
  2838.         # Extract -R from dependency_libs
  2839.         temp_deplibs=
  2840.         for libdir in $dependency_libs; do
  2841.           case $libdir in
  2842.           -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
  2843.            case " $xrpath " in
  2844.            *" $temp_xrpath "*) ;;
  2845.            *) xrpath="$xrpath $temp_xrpath";;
  2846.            esac;;
  2847.           *) temp_deplibs="$temp_deplibs $libdir";;
  2848.           esac
  2849.         done
  2850.         dependency_libs="$temp_deplibs"
  2851.       fi
  2852.  
  2853.       newlib_search_path="$newlib_search_path $absdir"
  2854.       # Link against this library
  2855.       test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
  2856.       # ... and its dependency_libs
  2857.       tmp_libs=
  2858.       for deplib in $dependency_libs; do
  2859.         newdependency_libs="$deplib $newdependency_libs"
  2860.         if test "X$duplicate_deps" = "Xyes" ; then
  2861.           case "$tmp_libs " in
  2862.           *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
  2863.           esac
  2864.         fi
  2865.         tmp_libs="$tmp_libs $deplib"
  2866.       done
  2867.  
  2868.       if test "$link_all_deplibs" != no; then
  2869.         # Add the search paths of all dependency libraries
  2870.         for deplib in $dependency_libs; do
  2871.           case $deplib in
  2872.           -L*) path="$deplib" ;;
  2873.           *.la)
  2874.         dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
  2875.         test "X$dir" = "X$deplib" && dir="."
  2876.         # We need an absolute path.
  2877.         case $dir in
  2878.         [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
  2879.         *)
  2880.           absdir=`cd "$dir" && pwd`
  2881.           if test -z "$absdir"; then
  2882.             $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
  2883.             absdir="$dir"
  2884.           fi
  2885.           ;;
  2886.         esac
  2887.         if grep "^installed=no" $deplib > /dev/null; then
  2888.           path="$absdir/$objdir"
  2889.         else
  2890.           eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
  2891.           if test -z "$libdir"; then
  2892.             $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
  2893.             exit $EXIT_FAILURE
  2894.           fi
  2895.           if test "$absdir" != "$libdir"; then
  2896.             $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
  2897.           fi
  2898.           path="$absdir"
  2899.         fi
  2900.         depdepl=
  2901.         case $host in
  2902.         *-*-darwin*)
  2903.           # we do not want to link against static libs,
  2904.           # but need to link against shared
  2905.           eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
  2906.           if test -n "$deplibrary_names" ; then
  2907.             for tmp in $deplibrary_names ; do
  2908.               depdepl=$tmp
  2909.             done
  2910.             if test -f "$path/$depdepl" ; then
  2911.               depdepl="$path/$depdepl"
  2912.             fi
  2913.             # do not add paths which are already there
  2914.             case " $newlib_search_path " in
  2915.             *" $path "*) ;;
  2916.             *) newlib_search_path="$newlib_search_path $path";;
  2917.             esac
  2918.           fi
  2919.           path=""
  2920.           ;;
  2921.         *)
  2922.           path="-L$path"
  2923.           ;;
  2924.         esac
  2925.         ;;
  2926.           -l*)
  2927.         case $host in
  2928.         *-*-darwin*)
  2929.           # Again, we only want to link against shared libraries
  2930.           eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
  2931.           for tmp in $newlib_search_path ; do
  2932.             if test -f "$tmp/lib$tmp_libs.dylib" ; then
  2933.               eval depdepl="$tmp/lib$tmp_libs.dylib"
  2934.               break
  2935.             fi
  2936.           done
  2937.           path=""
  2938.           ;;
  2939.         *) continue ;;
  2940.         esac
  2941.         ;;
  2942.           *) continue ;;
  2943.           esac
  2944.           case " $deplibs " in
  2945.           *" $path "*) ;;
  2946.           *) deplibs="$path $deplibs" ;;
  2947.           esac
  2948.           case " $deplibs " in
  2949.           *" $depdepl "*) ;;
  2950.           *) deplibs="$depdepl $deplibs" ;;
  2951.           esac
  2952.         done
  2953.       fi # link_all_deplibs != no
  2954.     fi # linkmode = lib
  2955.       done # for deplib in $libs
  2956.       dependency_libs="$newdependency_libs"
  2957.       if test "$pass" = dlpreopen; then
  2958.     # Link the dlpreopened libraries before other libraries
  2959.     for deplib in $save_deplibs; do
  2960.       deplibs="$deplib $deplibs"
  2961.     done
  2962.       fi
  2963.       if test "$pass" != dlopen; then
  2964.     if test "$pass" != conv; then
  2965.       # Make sure lib_search_path contains only unique directories.
  2966.       lib_search_path=
  2967.       for dir in $newlib_search_path; do
  2968.         case "$lib_search_path " in
  2969.         *" $dir "*) ;;
  2970.         *) lib_search_path="$lib_search_path $dir" ;;
  2971.         esac
  2972.       done
  2973.       newlib_search_path=
  2974.     fi
  2975.  
  2976.     if test "$linkmode,$pass" != "prog,link"; then
  2977.       vars="deplibs"
  2978.     else
  2979.       vars="compile_deplibs finalize_deplibs"
  2980.     fi
  2981.     for var in $vars dependency_libs; do
  2982.       # Add libraries to $var in reverse order
  2983.       eval tmp_libs=\"\$$var\"
  2984.       new_libs=
  2985.       for deplib in $tmp_libs; do
  2986.         # FIXME: Pedantically, this is the right thing to do, so
  2987.         #        that some nasty dependency loop isn't accidentally
  2988.         #        broken:
  2989.         #new_libs="$deplib $new_libs"
  2990.         # Pragmatically, this seems to cause very few problems in
  2991.         # practice:
  2992.         case $deplib in
  2993.         -L*) new_libs="$deplib $new_libs" ;;
  2994.         -R*) ;;
  2995.         *)
  2996.           # And here is the reason: when a library appears more
  2997.           # than once as an explicit dependence of a library, or
  2998.           # is implicitly linked in more than once by the
  2999.           # compiler, it is considered special, and multiple
  3000.           # occurrences thereof are not removed.  Compare this
  3001.           # with having the same library being listed as a
  3002.           # dependency of multiple other libraries: in this case,
  3003.           # we know (pedantically, we assume) the library does not
  3004.           # need to be listed more than once, so we keep only the
  3005.           # last copy.  This is not always right, but it is rare
  3006.           # enough that we require users that really mean to play
  3007.           # such unportable linking tricks to link the library
  3008.           # using -Wl,-lname, so that libtool does not consider it
  3009.           # for duplicate removal.
  3010.           case " $specialdeplibs " in
  3011.           *" $deplib "*) new_libs="$deplib $new_libs" ;;
  3012.           *)
  3013.         case " $new_libs " in
  3014.         *" $deplib "*) ;;
  3015.         *) new_libs="$deplib $new_libs" ;;
  3016.         esac
  3017.         ;;
  3018.           esac
  3019.           ;;
  3020.         esac
  3021.       done
  3022.       tmp_libs=
  3023.       for deplib in $new_libs; do
  3024.         case $deplib in
  3025.         -L*)
  3026.           case " $tmp_libs " in
  3027.           *" $deplib "*) ;;
  3028.           *) tmp_libs="$tmp_libs $deplib" ;;
  3029.           esac
  3030.           ;;
  3031.         *) tmp_libs="$tmp_libs $deplib" ;;
  3032.         esac
  3033.       done
  3034.       eval $var=\"$tmp_libs\"
  3035.     done # for var
  3036.       fi
  3037.       # Last step: remove runtime libs from dependency_libs
  3038.       # (they stay in deplibs)
  3039.       tmp_libs=
  3040.       for i in $dependency_libs ; do
  3041.     case " $predeps $postdeps $compiler_lib_search_path " in
  3042.     *" $i "*)
  3043.       i=""
  3044.       ;;
  3045.     esac
  3046.     if test -n "$i" ; then
  3047.       tmp_libs="$tmp_libs $i"
  3048.     fi
  3049.       done
  3050.       dependency_libs=$tmp_libs
  3051.     done # for pass
  3052.     if test "$linkmode" = prog; then
  3053.       dlfiles="$newdlfiles"
  3054.       dlprefiles="$newdlprefiles"
  3055.     fi
  3056.  
  3057.     case $linkmode in
  3058.     oldlib)
  3059.       if test -n "$deplibs"; then
  3060.     $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
  3061.       fi
  3062.  
  3063.       if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
  3064.     $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
  3065.       fi
  3066.  
  3067.       if test -n "$rpath"; then
  3068.     $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
  3069.       fi
  3070.  
  3071.       if test -n "$xrpath"; then
  3072.     $echo "$modename: warning: \`-R' is ignored for archives" 1>&2
  3073.       fi
  3074.  
  3075.       if test -n "$vinfo"; then
  3076.     $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2
  3077.       fi
  3078.  
  3079.       if test -n "$release"; then
  3080.     $echo "$modename: warning: \`-release' is ignored for archives" 1>&2
  3081.       fi
  3082.  
  3083.       if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
  3084.     $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
  3085.       fi
  3086.  
  3087.       # Now set the variables for building old libraries.
  3088.       build_libtool_libs=no
  3089.       oldlibs="$output"
  3090.       objs="$objs$old_deplibs"
  3091.       ;;
  3092.  
  3093.     lib)
  3094.       # Make sure we only generate libraries of the form `libNAME.la'.
  3095.       case $outputname in
  3096.       lib*)
  3097.     name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
  3098.     eval shared_ext=\"$shrext_cmds\"
  3099.     eval libname=\"$libname_spec\"
  3100.     ;;
  3101.       *)
  3102.     if test "$module" = no; then
  3103.       $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
  3104.       $echo "$help" 1>&2
  3105.       exit $EXIT_FAILURE
  3106.     fi
  3107.     if test "$need_lib_prefix" != no; then
  3108.       # Add the "lib" prefix for modules if required
  3109.       name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
  3110.       eval shared_ext=\"$shrext_cmds\"
  3111.       eval libname=\"$libname_spec\"
  3112.     else
  3113.       libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
  3114.     fi
  3115.     ;;
  3116.       esac
  3117.  
  3118.       if test -n "$objs"; then
  3119.     if test "$deplibs_check_method" != pass_all; then
  3120.       $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
  3121.       exit $EXIT_FAILURE
  3122.     else
  3123.       $echo
  3124.       $echo "*** Warning: Linking the shared library $output against the non-libtool"
  3125.       $echo "*** objects $objs is not portable!"
  3126.       libobjs="$libobjs $objs"
  3127.     fi
  3128.       fi
  3129.  
  3130.       if test "$dlself" != no; then
  3131.     $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
  3132.       fi
  3133.  
  3134.       set dummy $rpath
  3135.       if test "$#" -gt 2; then
  3136.     $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
  3137.       fi
  3138.       install_libdir="$2"
  3139.  
  3140.       oldlibs=
  3141.       if test -z "$rpath"; then
  3142.     if test "$build_libtool_libs" = yes; then
  3143.       # Building a libtool convenience library.
  3144.       # Some compilers have problems with a `.al' extension so
  3145.       # convenience libraries should have the same extension an
  3146.       # archive normally would.
  3147.       oldlibs="$output_objdir/$libname.$libext $oldlibs"
  3148.       build_libtool_libs=convenience
  3149.       build_old_libs=yes
  3150.     fi
  3151.  
  3152.     if test -n "$vinfo"; then
  3153.       $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2
  3154.     fi
  3155.  
  3156.     if test -n "$release"; then
  3157.       $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
  3158.     fi
  3159.       else
  3160.  
  3161.     # Parse the version information argument.
  3162.     save_ifs="$IFS"; IFS=':'
  3163.     set dummy $vinfo 0 0 0
  3164.     IFS="$save_ifs"
  3165.  
  3166.     if test -n "$8"; then
  3167.       $echo "$modename: too many parameters to \`-version-info'" 1>&2
  3168.       $echo "$help" 1>&2
  3169.       exit $EXIT_FAILURE
  3170.     fi
  3171.  
  3172.     # convert absolute version numbers to libtool ages
  3173.     # this retains compatibility with .la files and attempts
  3174.     # to make the code below a bit more comprehensible
  3175.  
  3176.     case $vinfo_number in
  3177.     yes)
  3178.       number_major="$2"
  3179.       number_minor="$3"
  3180.       number_revision="$4"
  3181.       #
  3182.       # There are really only two kinds -- those that
  3183.       # use the current revision as the major version
  3184.       # and those that subtract age and use age as
  3185.       # a minor version.  But, then there is irix
  3186.       # which has an extra 1 added just for fun
  3187.       #
  3188.       case $version_type in
  3189.       darwin|linux|osf|windows)
  3190.         current=`expr $number_major + $number_minor`
  3191.         age="$number_minor"
  3192.         revision="$number_revision"
  3193.         ;;
  3194.       freebsd-aout|freebsd-elf|sunos)
  3195.         current="$number_major"
  3196.         revision="$number_minor"
  3197.         age="0"
  3198.         ;;
  3199.       irix|nonstopux)
  3200.         current=`expr $number_major + $number_minor - 1`
  3201.         age="$number_minor"
  3202.         revision="$number_minor"
  3203.         ;;
  3204.       esac
  3205.       ;;
  3206.     no)
  3207.       current="$2"
  3208.       revision="$3"
  3209.       age="$4"
  3210.       ;;
  3211.     esac
  3212.  
  3213.     # Check that each of the things are valid numbers.
  3214.     case $current in
  3215.     0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
  3216.     *)
  3217.       $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2
  3218.       $echo "$modename: \`$vinfo' is not valid version information" 1>&2
  3219.       exit $EXIT_FAILURE
  3220.       ;;
  3221.     esac
  3222.  
  3223.     case $revision in
  3224.     0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
  3225.     *)
  3226.       $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2
  3227.       $echo "$modename: \`$vinfo' is not valid version information" 1>&2
  3228.       exit $EXIT_FAILURE
  3229.       ;;
  3230.     esac
  3231.  
  3232.     case $age in
  3233.     0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
  3234.     *)
  3235.       $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2
  3236.       $echo "$modename: \`$vinfo' is not valid version information" 1>&2
  3237.       exit $EXIT_FAILURE
  3238.       ;;
  3239.     esac
  3240.  
  3241.     if test "$age" -gt "$current"; then
  3242.       $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
  3243.       $echo "$modename: \`$vinfo' is not valid version information" 1>&2
  3244.       exit $EXIT_FAILURE
  3245.     fi
  3246.  
  3247.     # Calculate the version variables.
  3248.     major=
  3249.     versuffix=
  3250.     verstring=
  3251.     case $version_type in
  3252.     none) ;;
  3253.  
  3254.     darwin)
  3255.       # Like Linux, but with the current version available in
  3256.       # verstring for coding it into the library header
  3257.       major=.`expr $current - $age`
  3258.       versuffix="$major.$age.$revision"
  3259.       # Darwin ld doesn't like 0 for these options...
  3260.       minor_current=`expr $current + 1`
  3261.       verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
  3262.       ;;
  3263.  
  3264.     freebsd-aout)
  3265.       major=".$current"
  3266.       versuffix=".$current.$revision";
  3267.       ;;
  3268.  
  3269.     freebsd-elf)
  3270.       major=".$current"
  3271.       versuffix=".$current";
  3272.       ;;
  3273.  
  3274.     irix | nonstopux)
  3275.       major=`expr $current - $age + 1`
  3276.  
  3277.       case $version_type in
  3278.         nonstopux) verstring_prefix=nonstopux ;;
  3279.         *)         verstring_prefix=sgi ;;
  3280.       esac
  3281.       verstring="$verstring_prefix$major.$revision"
  3282.  
  3283.       # Add in all the interfaces that we are compatible with.
  3284.       loop=$revision
  3285.       while test "$loop" -ne 0; do
  3286.         iface=`expr $revision - $loop`
  3287.         loop=`expr $loop - 1`
  3288.         verstring="$verstring_prefix$major.$iface:$verstring"
  3289.       done
  3290.  
  3291.       # Before this point, $major must not contain `.'.
  3292.       major=.$major
  3293.       versuffix="$major.$revision"
  3294.       ;;
  3295.  
  3296.     linux)
  3297.       major=.`expr $current - $age`
  3298.       versuffix="$major.$age.$revision"
  3299.       ;;
  3300.  
  3301.     osf)
  3302.       major=.`expr $current - $age`
  3303.       versuffix=".$current.$age.$revision"
  3304.       verstring="$current.$age.$revision"
  3305.  
  3306.       # Add in all the interfaces that we are compatible with.
  3307.       loop=$age
  3308.       while test "$loop" -ne 0; do
  3309.         iface=`expr $current - $loop`
  3310.         loop=`expr $loop - 1`
  3311.         verstring="$verstring:${iface}.0"
  3312.       done
  3313.  
  3314.       # Make executables depend on our current version.
  3315.       verstring="$verstring:${current}.0"
  3316.       ;;
  3317.  
  3318.     sunos)
  3319.       major=".$current"
  3320.       versuffix=".$current.$revision"
  3321.       ;;
  3322.  
  3323.     windows)
  3324.       # Use '-' rather than '.', since we only want one
  3325.       # extension on DOS 8.3 filesystems.
  3326.       major=`expr $current - $age`
  3327.       versuffix="-$major"
  3328.       ;;
  3329.  
  3330.     *)
  3331.       $echo "$modename: unknown library version type \`$version_type'" 1>&2
  3332.       $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
  3333.       exit $EXIT_FAILURE
  3334.       ;;
  3335.     esac
  3336.  
  3337.     # Clear the version info if we defaulted, and they specified a release.
  3338.     if test -z "$vinfo" && test -n "$release"; then
  3339.       major=
  3340.       case $version_type in
  3341.       darwin)
  3342.         # we can't check for "0.0" in archive_cmds due to quoting
  3343.         # problems, so we reset it completely
  3344.         verstring=
  3345.         ;;
  3346.       *)
  3347.         verstring="0.0"
  3348.         ;;
  3349.       esac
  3350.       if test "$need_version" = no; then
  3351.         versuffix=
  3352.       else
  3353.         versuffix=".0.0"
  3354.       fi
  3355.     fi
  3356.  
  3357.     # Remove version info from name if versioning should be avoided
  3358.     if test "$avoid_version" = yes && test "$need_version" = no; then
  3359.       major=
  3360.       versuffix=
  3361.       verstring=""
  3362.     fi
  3363.  
  3364.     # Check to see if the archive will have undefined symbols.
  3365.     if test "$allow_undefined" = yes; then
  3366.       if test "$allow_undefined_flag" = unsupported; then
  3367.         $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
  3368.         build_libtool_libs=no
  3369.         build_old_libs=yes
  3370.       fi
  3371.     else
  3372.       # Don't allow undefined symbols.
  3373.       allow_undefined_flag="$no_undefined_flag"
  3374.     fi
  3375.       fi
  3376.  
  3377.       if test "$mode" != relink; then
  3378.     # Remove our outputs, but don't remove object files since they
  3379.     # may have been created when compiling PIC objects.
  3380.     removelist=
  3381.     tempremovelist=`$echo "$output_objdir/*"`
  3382.     for p in $tempremovelist; do
  3383.       case $p in
  3384.         *.$objext)
  3385.            ;;
  3386.         $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
  3387.            if test "X$precious_files_regex" != "X"; then
  3388.              if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
  3389.              then
  3390.            continue
  3391.          fi
  3392.            fi
  3393.            removelist="$removelist $p"
  3394.            ;;
  3395.         *) ;;
  3396.       esac
  3397.     done
  3398.     if test -n "$removelist"; then
  3399.       $show "${rm}r $removelist"
  3400.       $run ${rm}r $removelist
  3401.     fi
  3402.       fi
  3403.  
  3404.       # Now set the variables for building old libraries.
  3405.       if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
  3406.     oldlibs="$oldlibs $output_objdir/$libname.$libext"
  3407.  
  3408.     # Transform .lo files to .o files.
  3409.     oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
  3410.       fi
  3411.  
  3412.       # Eliminate all temporary directories.
  3413.       for path in $notinst_path; do
  3414.     lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"`
  3415.     deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"`
  3416.     dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"`
  3417.       done
  3418.  
  3419.       if test -n "$xrpath"; then
  3420.     # If the user specified any rpath flags, then add them.
  3421.     temp_xrpath=
  3422.     for libdir in $xrpath; do
  3423.       temp_xrpath="$temp_xrpath -R$libdir"
  3424.       case "$finalize_rpath " in
  3425.       *" $libdir "*) ;;
  3426.       *) finalize_rpath="$finalize_rpath $libdir" ;;
  3427.       esac
  3428.     done
  3429.     if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
  3430.       dependency_libs="$temp_xrpath $dependency_libs"
  3431.     fi
  3432.       fi
  3433.  
  3434.       # Make sure dlfiles contains only unique files that won't be dlpreopened
  3435.       old_dlfiles="$dlfiles"
  3436.       dlfiles=
  3437.       for lib in $old_dlfiles; do
  3438.     case " $dlprefiles $dlfiles " in
  3439.     *" $lib "*) ;;
  3440.     *) dlfiles="$dlfiles $lib" ;;
  3441.     esac
  3442.       done
  3443.  
  3444.       # Make sure dlprefiles contains only unique files
  3445.       old_dlprefiles="$dlprefiles"
  3446.       dlprefiles=
  3447.       for lib in $old_dlprefiles; do
  3448.     case "$dlprefiles " in
  3449.     *" $lib "*) ;;
  3450.     *) dlprefiles="$dlprefiles $lib" ;;
  3451.     esac
  3452.       done
  3453.  
  3454.       if test "$build_libtool_libs" = yes; then
  3455.     if test -n "$rpath"; then
  3456.       case $host in
  3457.       *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
  3458.         # these systems don't actually have a c library (as such)!
  3459.         ;;
  3460.       *-*-rhapsody* | *-*-darwin1.[012])
  3461.         # Rhapsody C library is in the System framework
  3462.         deplibs="$deplibs -framework System"
  3463.         ;;
  3464.       *-*-netbsd*)
  3465.         # Don't link with libc until the a.out ld.so is fixed.
  3466.         ;;
  3467.       *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
  3468.         # Do not include libc due to us having libc/libc_r.
  3469.         ;;
  3470.       *-*-sco3.2v5* | *-*-sco5v6*)
  3471.         # Causes problems with __ctype
  3472.         ;;
  3473.       *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
  3474.         # Compiler inserts libc in the correct place for threads to work
  3475.         ;;
  3476.        *)
  3477.         # Add libc to deplibs on all other systems if necessary.
  3478.         if test "$build_libtool_need_lc" = "yes"; then
  3479.           deplibs="$deplibs -lc"
  3480.         fi
  3481.         ;;
  3482.       esac
  3483.     fi
  3484.  
  3485.     # Transform deplibs into only deplibs that can be linked in shared.
  3486.     name_save=$name
  3487.     libname_save=$libname
  3488.     release_save=$release
  3489.     versuffix_save=$versuffix
  3490.     major_save=$major
  3491.     # I'm not sure if I'm treating the release correctly.  I think
  3492.     # release should show up in the -l (ie -lgmp5) so we don't want to
  3493.     # add it in twice.  Is that correct?
  3494.     release=""
  3495.     versuffix=""
  3496.     major=""
  3497.     newdeplibs=
  3498.     droppeddeps=no
  3499.     case $deplibs_check_method in
  3500.     pass_all)
  3501.       # Don't check for shared/static.  Everything works.
  3502.       # This might be a little naive.  We might want to check
  3503.       # whether the library exists or not.  But this is on
  3504.       # osf3 & osf4 and I'm not really sure... Just
  3505.       # implementing what was already the behavior.
  3506.       newdeplibs=$deplibs
  3507.       ;;
  3508.     test_compile)
  3509.       # This code stresses the "libraries are programs" paradigm to its
  3510.       # limits. Maybe even breaks it.  We compile a program, linking it
  3511.       # against the deplibs as a proxy for the library.  Then we can check
  3512.       # whether they linked in statically or dynamically with ldd.
  3513.       $rm conftest.c
  3514.       cat > conftest.c <<EOF
  3515.       int main() { return 0; }
  3516. EOF
  3517.       $rm conftest
  3518.       $LTCC $LTCFLAGS -o conftest conftest.c $deplibs
  3519.       if test "$?" -eq 0 ; then
  3520.         ldd_output=`ldd conftest`
  3521.         for i in $deplibs; do
  3522.           name=`expr $i : '-l\(.*\)'`
  3523.           # If $name is empty we are operating on a -L argument.
  3524.               if test "$name" != "" && test "$name" -ne "0"; then
  3525.         if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
  3526.           case " $predeps $postdeps " in
  3527.           *" $i "*)
  3528.             newdeplibs="$newdeplibs $i"
  3529.             i=""
  3530.             ;;
  3531.           esac
  3532.             fi
  3533.         if test -n "$i" ; then
  3534.           libname=`eval \\$echo \"$libname_spec\"`
  3535.           deplib_matches=`eval \\$echo \"$library_names_spec\"`
  3536.           set dummy $deplib_matches
  3537.           deplib_match=$2
  3538.           if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
  3539.             newdeplibs="$newdeplibs $i"
  3540.           else
  3541.             droppeddeps=yes
  3542.             $echo
  3543.             $echo "*** Warning: dynamic linker does not accept needed library $i."
  3544.             $echo "*** I have the capability to make that library automatically link in when"
  3545.             $echo "*** you link to this library.  But I can only do this if you have a"
  3546.             $echo "*** shared version of the library, which I believe you do not have"
  3547.             $echo "*** because a test_compile did reveal that the linker did not use it for"
  3548.             $echo "*** its dynamic dependency list that programs get resolved with at runtime."
  3549.           fi
  3550.         fi
  3551.           else
  3552.         newdeplibs="$newdeplibs $i"
  3553.           fi
  3554.         done
  3555.       else
  3556.         # Error occurred in the first compile.  Let's try to salvage
  3557.         # the situation: Compile a separate program for each library.
  3558.         for i in $deplibs; do
  3559.           name=`expr $i : '-l\(.*\)'`
  3560.           # If $name is empty we are operating on a -L argument.
  3561.               if test "$name" != "" && test "$name" != "0"; then
  3562.         $rm conftest
  3563.         $LTCC $LTCFLAGS -o conftest conftest.c $i
  3564.         # Did it work?
  3565.         if test "$?" -eq 0 ; then
  3566.           ldd_output=`ldd conftest`
  3567.           if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
  3568.             case " $predeps $postdeps " in
  3569.             *" $i "*)
  3570.               newdeplibs="$newdeplibs $i"
  3571.               i=""
  3572.               ;;
  3573.             esac
  3574.           fi
  3575.           if test -n "$i" ; then
  3576.             libname=`eval \\$echo \"$libname_spec\"`
  3577.             deplib_matches=`eval \\$echo \"$library_names_spec\"`
  3578.             set dummy $deplib_matches
  3579.             deplib_match=$2
  3580.             if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
  3581.               newdeplibs="$newdeplibs $i"
  3582.             else
  3583.               droppeddeps=yes
  3584.               $echo
  3585.               $echo "*** Warning: dynamic linker does not accept needed library $i."
  3586.               $echo "*** I have the capability to make that library automatically link in when"
  3587.               $echo "*** you link to this library.  But I can only do this if you have a"
  3588.               $echo "*** shared version of the library, which you do not appear to have"
  3589.               $echo "*** because a test_compile did reveal that the linker did not use this one"
  3590.               $echo "*** as a dynamic dependency that programs can get resolved with at runtime."
  3591.             fi
  3592.           fi
  3593.         else
  3594.           droppeddeps=yes
  3595.           $echo
  3596.           $echo "*** Warning!  Library $i is needed by this library but I was not able to"
  3597.           $echo "***  make it link in!  You will probably need to install it or some"
  3598.           $echo "*** library that it depends on before this library will be fully"
  3599.           $echo "*** functional.  Installing it before continuing would be even better."
  3600.         fi
  3601.           else
  3602.         newdeplibs="$newdeplibs $i"
  3603.           fi
  3604.         done
  3605.       fi
  3606.       ;;
  3607.     file_magic*)
  3608.       set dummy $deplibs_check_method
  3609.       file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
  3610.       for a_deplib in $deplibs; do
  3611.         name=`expr $a_deplib : '-l\(.*\)'`
  3612.         # If $name is empty we are operating on a -L argument.
  3613.             if test "$name" != "" && test  "$name" != "0"; then
  3614.           if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
  3615.         case " $predeps $postdeps " in
  3616.         *" $a_deplib "*)
  3617.           newdeplibs="$newdeplibs $a_deplib"
  3618.           a_deplib=""
  3619.           ;;
  3620.         esac
  3621.           fi
  3622.           if test -n "$a_deplib" ; then
  3623.         libname=`eval \\$echo \"$libname_spec\"`
  3624.         for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
  3625.           potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
  3626.           for potent_lib in $potential_libs; do
  3627.               # Follow soft links.
  3628.               if ls -lLd "$potent_lib" 2>/dev/null \
  3629.              | grep " -> " >/dev/null; then
  3630.             continue
  3631.               fi
  3632.               # The statement above tries to avoid entering an
  3633.               # endless loop below, in case of cyclic links.
  3634.               # We might still enter an endless loop, since a link
  3635.               # loop can be closed while we follow links,
  3636.               # but so what?
  3637.               potlib="$potent_lib"
  3638.               while test -h "$potlib" 2>/dev/null; do
  3639.             potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
  3640.             case $potliblink in
  3641.             [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
  3642.             *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
  3643.             esac
  3644.               done
  3645.               if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
  3646.              | ${SED} 10q \
  3647.              | $EGREP "$file_magic_regex" > /dev/null; then
  3648.             newdeplibs="$newdeplibs $a_deplib"
  3649.             a_deplib=""
  3650.             break 2
  3651.               fi
  3652.           done
  3653.         done
  3654.           fi
  3655.           if test -n "$a_deplib" ; then
  3656.         droppeddeps=yes
  3657.         $echo
  3658.         $echo "*** Warning: linker path does not have real file for library $a_deplib."
  3659.         $echo "*** I have the capability to make that library automatically link in when"
  3660.         $echo "*** you link to this library.  But I can only do this if you have a"
  3661.         $echo "*** shared version of the library, which you do not appear to have"
  3662.         $echo "*** because I did check the linker path looking for a file starting"
  3663.         if test -z "$potlib" ; then
  3664.           $echo "*** with $libname but no candidates were found. (...for file magic test)"
  3665.         else
  3666.           $echo "*** with $libname and none of the candidates passed a file format test"
  3667.           $echo "*** using a file magic. Last file checked: $potlib"
  3668.         fi
  3669.           fi
  3670.         else
  3671.           # Add a -L argument.
  3672.           newdeplibs="$newdeplibs $a_deplib"
  3673.         fi
  3674.       done # Gone through all deplibs.
  3675.       ;;
  3676.     match_pattern*)
  3677.       set dummy $deplibs_check_method
  3678.       match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
  3679.       for a_deplib in $deplibs; do
  3680.         name=`expr $a_deplib : '-l\(.*\)'`
  3681.         # If $name is empty we are operating on a -L argument.
  3682.         if test -n "$name" && test "$name" != "0"; then
  3683.           if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
  3684.         case " $predeps $postdeps " in
  3685.         *" $a_deplib "*)
  3686.           newdeplibs="$newdeplibs $a_deplib"
  3687.           a_deplib=""
  3688.           ;;
  3689.         esac
  3690.           fi
  3691.           if test -n "$a_deplib" ; then
  3692.         libname=`eval \\$echo \"$libname_spec\"`
  3693.         for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
  3694.           potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
  3695.           for potent_lib in $potential_libs; do
  3696.             potlib="$potent_lib" # see symlink-check above in file_magic test
  3697.             if eval $echo \"$potent_lib\" 2>/dev/null \
  3698.                 | ${SED} 10q \
  3699.                 | $EGREP "$match_pattern_regex" > /dev/null; then
  3700.               newdeplibs="$newdeplibs $a_deplib"
  3701.               a_deplib=""
  3702.               break 2
  3703.             fi
  3704.           done
  3705.         done
  3706.           fi
  3707.           if test -n "$a_deplib" ; then
  3708.         droppeddeps=yes
  3709.         $echo
  3710.         $echo "*** Warning: linker path does not have real file for library $a_deplib."
  3711.         $echo "*** I have the capability to make that library automatically link in when"
  3712.         $echo "*** you link to this library.  But I can only do this if you have a"
  3713.         $echo "*** shared version of the library, which you do not appear to have"
  3714.         $echo "*** because I did check the linker path looking for a file starting"
  3715.         if test -z "$potlib" ; then
  3716.           $echo "*** with $libname but no candidates were found. (...for regex pattern test)"
  3717.         else
  3718.           $echo "*** with $libname and none of the candidates passed a file format test"
  3719.           $echo "*** using a regex pattern. Last file checked: $potlib"
  3720.         fi
  3721.           fi
  3722.         else
  3723.           # Add a -L argument.
  3724.           newdeplibs="$newdeplibs $a_deplib"
  3725.         fi
  3726.       done # Gone through all deplibs.
  3727.       ;;
  3728.     none | unknown | *)
  3729.       newdeplibs=""
  3730.       tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
  3731.         -e 's/ -[LR][^ ]*//g'`
  3732.       if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
  3733.         for i in $predeps $postdeps ; do
  3734.           # can't use Xsed below, because $i might contain '/'
  3735.           tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"`
  3736.         done
  3737.       fi
  3738.       if $echo "X $tmp_deplibs" | $Xsed -e 's/[     ]//g' \
  3739.         | grep . >/dev/null; then
  3740.         $echo
  3741.         if test "X$deplibs_check_method" = "Xnone"; then
  3742.           $echo "*** Warning: inter-library dependencies are not supported in this platform."
  3743.         else
  3744.           $echo "*** Warning: inter-library dependencies are not known to be supported."
  3745.         fi
  3746.         $echo "*** All declared inter-library dependencies are being dropped."
  3747.         droppeddeps=yes
  3748.       fi
  3749.       ;;
  3750.     esac
  3751.     versuffix=$versuffix_save
  3752.     major=$major_save
  3753.     release=$release_save
  3754.     libname=$libname_save
  3755.     name=$name_save
  3756.  
  3757.     case $host in
  3758.     *-*-rhapsody* | *-*-darwin1.[012])
  3759.       # On Rhapsody replace the C library is the System framework
  3760.       newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
  3761.       ;;
  3762.     esac
  3763.  
  3764.     if test "$droppeddeps" = yes; then
  3765.       if test "$module" = yes; then
  3766.         $echo
  3767.         $echo "*** Warning: libtool could not satisfy all declared inter-library"
  3768.         $echo "*** dependencies of module $libname.  Therefore, libtool will create"
  3769.         $echo "*** a static module, that should work as long as the dlopening"
  3770.         $echo "*** application is linked with the -dlopen flag."
  3771.         if test -z "$global_symbol_pipe"; then
  3772.           $echo
  3773.           $echo "*** However, this would only work if libtool was able to extract symbol"
  3774.           $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
  3775.           $echo "*** not find such a program.  So, this module is probably useless."
  3776.           $echo "*** \`nm' from GNU binutils and a full rebuild may help."
  3777.         fi
  3778.         if test "$build_old_libs" = no; then
  3779.           oldlibs="$output_objdir/$libname.$libext"
  3780.           build_libtool_libs=module
  3781.           build_old_libs=yes
  3782.         else
  3783.           build_libtool_libs=no
  3784.         fi
  3785.       else
  3786.         $echo "*** The inter-library dependencies that have been dropped here will be"
  3787.         $echo "*** automatically added whenever a program is linked with this library"
  3788.         $echo "*** or is declared to -dlopen it."
  3789.  
  3790.         if test "$allow_undefined" = no; then
  3791.           $echo
  3792.           $echo "*** Since this library must not contain undefined symbols,"
  3793.           $echo "*** because either the platform does not support them or"
  3794.           $echo "*** it was explicitly requested with -no-undefined,"
  3795.           $echo "*** libtool will only create a static version of it."
  3796.           if test "$build_old_libs" = no; then
  3797.         oldlibs="$output_objdir/$libname.$libext"
  3798.         build_libtool_libs=module
  3799.         build_old_libs=yes
  3800.           else
  3801.         build_libtool_libs=no
  3802.           fi
  3803.         fi
  3804.       fi
  3805.     fi
  3806.     # Done checking deplibs!
  3807.     deplibs=$newdeplibs
  3808.       fi
  3809.  
  3810.  
  3811.       # move library search paths that coincide with paths to not yet
  3812.       # installed libraries to the beginning of the library search list
  3813.       new_libs=
  3814.       for path in $notinst_path; do
  3815.     case " $new_libs " in
  3816.     *" -L$path/$objdir "*) ;;
  3817.     *)
  3818.       case " $deplibs " in
  3819.       *" -L$path/$objdir "*)
  3820.         new_libs="$new_libs -L$path/$objdir" ;;
  3821.       esac
  3822.       ;;
  3823.     esac
  3824.       done
  3825.       for deplib in $deplibs; do
  3826.     case $deplib in
  3827.     -L*)
  3828.       case " $new_libs " in
  3829.       *" $deplib "*) ;;
  3830.       *) new_libs="$new_libs $deplib" ;;
  3831.       esac
  3832.       ;;
  3833.     *) new_libs="$new_libs $deplib" ;;
  3834.     esac
  3835.       done
  3836.       deplibs="$new_libs"
  3837.  
  3838.  
  3839.       # All the library-specific variables (install_libdir is set above).
  3840.       library_names=
  3841.       old_library=
  3842.       dlname=
  3843.  
  3844.       # Test again, we may have decided not to build it any more
  3845.       if test "$build_libtool_libs" = yes; then
  3846.     if test "$hardcode_into_libs" = yes; then
  3847.       # Hardcode the library paths
  3848.       hardcode_libdirs=
  3849.       dep_rpath=
  3850.       rpath="$finalize_rpath"
  3851.       test "$mode" != relink && rpath="$compile_rpath$rpath"
  3852.       for libdir in $rpath; do
  3853.         if test -n "$hardcode_libdir_flag_spec"; then
  3854.           if test -n "$hardcode_libdir_separator"; then
  3855.         if test -z "$hardcode_libdirs"; then
  3856.           hardcode_libdirs="$libdir"
  3857.         else
  3858.           # Just accumulate the unique libdirs.
  3859.           case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
  3860.           *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
  3861.             ;;
  3862.           *)
  3863.             hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
  3864.             ;;
  3865.           esac
  3866.         fi
  3867.           else
  3868.         eval flag=\"$hardcode_libdir_flag_spec\"
  3869.         dep_rpath="$dep_rpath $flag"
  3870.           fi
  3871.         elif test -n "$runpath_var"; then
  3872.           case "$perm_rpath " in
  3873.           *" $libdir "*) ;;
  3874.           *) perm_rpath="$perm_rpath $libdir" ;;
  3875.           esac
  3876.         fi
  3877.       done
  3878.       # Substitute the hardcoded libdirs into the rpath.
  3879.       if test -n "$hardcode_libdir_separator" &&
  3880.          test -n "$hardcode_libdirs"; then
  3881.         libdir="$hardcode_libdirs"
  3882.         if test -n "$hardcode_libdir_flag_spec_ld"; then
  3883.           eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
  3884.         else
  3885.           eval dep_rpath=\"$hardcode_libdir_flag_spec\"
  3886.         fi
  3887.       fi
  3888.       if test -n "$runpath_var" && test -n "$perm_rpath"; then
  3889.         # We should set the runpath_var.
  3890.         rpath=
  3891.         for dir in $perm_rpath; do
  3892.           rpath="$rpath$dir:"
  3893.         done
  3894.         eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
  3895.       fi
  3896.       test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
  3897.     fi
  3898.  
  3899.     shlibpath="$finalize_shlibpath"
  3900.     test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
  3901.     if test -n "$shlibpath"; then
  3902.       eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
  3903.     fi
  3904.  
  3905.     # Get the real and link names of the library.
  3906.     eval shared_ext=\"$shrext_cmds\"
  3907.     eval library_names=\"$library_names_spec\"
  3908.     set dummy $library_names
  3909.     realname="$2"
  3910.     shift; shift
  3911.  
  3912.     if test -n "$soname_spec"; then
  3913.       eval soname=\"$soname_spec\"
  3914.     else
  3915.       soname="$realname"
  3916.     fi
  3917.     if test -z "$dlname"; then
  3918.       dlname=$soname
  3919.     fi
  3920.  
  3921.     lib="$output_objdir/$realname"
  3922.     linknames=
  3923.     for link
  3924.     do
  3925.       linknames="$linknames $link"
  3926.     done
  3927.  
  3928.     # Use standard objects if they are pic
  3929.     test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
  3930.  
  3931.     # Prepare the list of exported symbols
  3932.     if test -z "$export_symbols"; then
  3933.       if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
  3934.         $show "generating symbol list for \`$libname.la'"
  3935.         export_symbols="$output_objdir/$libname.exp"
  3936.         $run $rm $export_symbols
  3937.         cmds=$export_symbols_cmds
  3938.         save_ifs="$IFS"; IFS='~'
  3939.         for cmd in $cmds; do
  3940.           IFS="$save_ifs"
  3941.           eval cmd=\"$cmd\"
  3942.           if len=`expr "X$cmd" : ".*"` &&
  3943.            test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
  3944.             $show "$cmd"
  3945.             $run eval "$cmd" || exit $?
  3946.             skipped_export=false
  3947.           else
  3948.             # The command line is too long to execute in one step.
  3949.             $show "using reloadable object file for export list..."
  3950.             skipped_export=:
  3951.         # Break out early, otherwise skipped_export may be
  3952.         # set to false by a later but shorter cmd.
  3953.         break
  3954.           fi
  3955.         done
  3956.         IFS="$save_ifs"
  3957.         if test -n "$export_symbols_regex"; then
  3958.           $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
  3959.           $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
  3960.           $show "$mv \"${export_symbols}T\" \"$export_symbols\""
  3961.           $run eval '$mv "${export_symbols}T" "$export_symbols"'
  3962.         fi
  3963.       fi
  3964.     fi
  3965.  
  3966.     if test -n "$export_symbols" && test -n "$include_expsyms"; then
  3967.       $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
  3968.     fi
  3969.  
  3970.     tmp_deplibs=
  3971.     for test_deplib in $deplibs; do
  3972.         case " $convenience " in
  3973.         *" $test_deplib "*) ;;
  3974.         *)
  3975.             tmp_deplibs="$tmp_deplibs $test_deplib"
  3976.             ;;
  3977.         esac
  3978.     done
  3979.     deplibs="$tmp_deplibs"
  3980.  
  3981.     if test -n "$convenience"; then
  3982.       if test -n "$whole_archive_flag_spec"; then
  3983.         save_libobjs=$libobjs
  3984.         eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
  3985.       else
  3986.         gentop="$output_objdir/${outputname}x"
  3987.         generated="$generated $gentop"
  3988.  
  3989.         func_extract_archives $gentop $convenience
  3990.         libobjs="$libobjs $func_extract_archives_result"
  3991.       fi
  3992.     fi
  3993.     
  3994.     if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
  3995.       eval flag=\"$thread_safe_flag_spec\"
  3996.       linker_flags="$linker_flags $flag"
  3997.     fi
  3998.  
  3999.     # Make a backup of the uninstalled library when relinking
  4000.     if test "$mode" = relink; then
  4001.       $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
  4002.     fi
  4003.  
  4004.     # Do each of the archive commands.
  4005.     if test "$module" = yes && test -n "$module_cmds" ; then
  4006.       if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
  4007.         eval test_cmds=\"$module_expsym_cmds\"
  4008.         cmds=$module_expsym_cmds
  4009.       else
  4010.         eval test_cmds=\"$module_cmds\"
  4011.         cmds=$module_cmds
  4012.       fi
  4013.     else
  4014.     if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
  4015.       eval test_cmds=\"$archive_expsym_cmds\"
  4016.       cmds=$archive_expsym_cmds
  4017.     else
  4018.       eval test_cmds=\"$archive_cmds\"
  4019.       cmds=$archive_cmds
  4020.       fi
  4021.     fi
  4022.  
  4023.     if test "X$skipped_export" != "X:" &&
  4024.        len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
  4025.        test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
  4026.       :
  4027.     else
  4028.       # The command line is too long to link in one step, link piecewise.
  4029.       $echo "creating reloadable object files..."
  4030.  
  4031.       # Save the value of $output and $libobjs because we want to
  4032.       # use them later.  If we have whole_archive_flag_spec, we
  4033.       # want to use save_libobjs as it was before
  4034.       # whole_archive_flag_spec was expanded, because we can't
  4035.       # assume the linker understands whole_archive_flag_spec.
  4036.       # This may have to be revisited, in case too many
  4037.       # convenience libraries get linked in and end up exceeding
  4038.       # the spec.
  4039.       if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
  4040.         save_libobjs=$libobjs
  4041.       fi
  4042.       save_output=$output
  4043.       output_la=`$echo "X$output" | $Xsed -e "$basename"`
  4044.  
  4045.       # Clear the reloadable object creation command queue and
  4046.       # initialize k to one.
  4047.       test_cmds=
  4048.       concat_cmds=
  4049.       objlist=
  4050.       delfiles=
  4051.       last_robj=
  4052.       k=1
  4053.       output=$output_objdir/$output_la-${k}.$objext
  4054.       # Loop over the list of objects to be linked.
  4055.       for obj in $save_libobjs
  4056.       do
  4057.         eval test_cmds=\"$reload_cmds $objlist $last_robj\"
  4058.         if test "X$objlist" = X ||
  4059.            { len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
  4060.          test "$len" -le "$max_cmd_len"; }; then
  4061.           objlist="$objlist $obj"
  4062.         else
  4063.           # The command $test_cmds is almost too long, add a
  4064.           # command to the queue.
  4065.           if test "$k" -eq 1 ; then
  4066.         # The first file doesn't have a previous command to add.
  4067.         eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
  4068.           else
  4069.         # All subsequent reloadable object files will link in
  4070.         # the last one created.
  4071.         eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
  4072.           fi
  4073.           last_robj=$output_objdir/$output_la-${k}.$objext
  4074.           k=`expr $k + 1`
  4075.           output=$output_objdir/$output_la-${k}.$objext
  4076.           objlist=$obj
  4077.           len=1
  4078.         fi
  4079.       done
  4080.       # Handle the remaining objects by creating one last
  4081.       # reloadable object file.  All subsequent reloadable object
  4082.       # files will link in the last one created.
  4083.       test -z "$concat_cmds" || concat_cmds=$concat_cmds~
  4084.       eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
  4085.  
  4086.       if ${skipped_export-false}; then
  4087.         $show "generating symbol list for \`$libname.la'"
  4088.         export_symbols="$output_objdir/$libname.exp"
  4089.         $run $rm $export_symbols
  4090.         libobjs=$output
  4091.         # Append the command to create the export file.
  4092.         eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\"
  4093.           fi
  4094.  
  4095.       # Set up a command to remove the reloadable object files
  4096.       # after they are used.
  4097.       i=0
  4098.       while test "$i" -lt "$k"
  4099.       do
  4100.         i=`expr $i + 1`
  4101.         delfiles="$delfiles $output_objdir/$output_la-${i}.$objext"
  4102.       done
  4103.  
  4104.       $echo "creating a temporary reloadable object file: $output"
  4105.  
  4106.       # Loop through the commands generated above and execute them.
  4107.       save_ifs="$IFS"; IFS='~'
  4108.       for cmd in $concat_cmds; do
  4109.         IFS="$save_ifs"
  4110.         $show "$cmd"
  4111.         $run eval "$cmd" || exit $?
  4112.       done
  4113.       IFS="$save_ifs"
  4114.  
  4115.       libobjs=$output
  4116.       # Restore the value of output.
  4117.       output=$save_output
  4118.  
  4119.       if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
  4120.         eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
  4121.       fi
  4122.       # Expand the library linking commands again to reset the
  4123.       # value of $libobjs for piecewise linking.
  4124.  
  4125.       # Do each of the archive commands.
  4126.       if test "$module" = yes && test -n "$module_cmds" ; then
  4127.         if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
  4128.           cmds=$module_expsym_cmds
  4129.         else
  4130.           cmds=$module_cmds
  4131.         fi
  4132.       else
  4133.       if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
  4134.         cmds=$archive_expsym_cmds
  4135.       else
  4136.         cmds=$archive_cmds
  4137.         fi
  4138.       fi
  4139.  
  4140.       # Append the command to remove the reloadable object files
  4141.       # to the just-reset $cmds.
  4142.       eval cmds=\"\$cmds~\$rm $delfiles\"
  4143.     fi
  4144.     save_ifs="$IFS"; IFS='~'
  4145.     for cmd in $cmds; do
  4146.       IFS="$save_ifs"
  4147.       eval cmd=\"$cmd\"
  4148.       $show "$cmd"
  4149.       $run eval "$cmd" || {
  4150.         lt_exit=$?
  4151.  
  4152.         # Restore the uninstalled library and exit
  4153.         if test "$mode" = relink; then
  4154.           $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
  4155.         fi
  4156.  
  4157.         exit $lt_exit
  4158.       }
  4159.     done
  4160.     IFS="$save_ifs"
  4161.  
  4162.     # Restore the uninstalled library and exit
  4163.     if test "$mode" = relink; then
  4164.       $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
  4165.  
  4166.       if test -n "$convenience"; then
  4167.         if test -z "$whole_archive_flag_spec"; then
  4168.           $show "${rm}r $gentop"
  4169.           $run ${rm}r "$gentop"
  4170.         fi
  4171.       fi
  4172.  
  4173.       exit $EXIT_SUCCESS
  4174.     fi
  4175.  
  4176.     # Create links to the real library.
  4177.     for linkname in $linknames; do
  4178.       if test "$realname" != "$linkname"; then
  4179.         $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
  4180.         $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
  4181.       fi
  4182.     done
  4183.  
  4184.     # If -module or -export-dynamic was specified, set the dlname.
  4185.     if test "$module" = yes || test "$export_dynamic" = yes; then
  4186.       # On all known operating systems, these are identical.
  4187.       dlname="$soname"
  4188.     fi
  4189.       fi
  4190.       ;;
  4191.  
  4192.     obj)
  4193.       if test -n "$deplibs"; then
  4194.     $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
  4195.       fi
  4196.  
  4197.       if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
  4198.     $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
  4199.       fi
  4200.  
  4201.       if test -n "$rpath"; then
  4202.     $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
  4203.       fi
  4204.  
  4205.       if test -n "$xrpath"; then
  4206.     $echo "$modename: warning: \`-R' is ignored for objects" 1>&2
  4207.       fi
  4208.  
  4209.       if test -n "$vinfo"; then
  4210.     $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
  4211.       fi
  4212.  
  4213.       if test -n "$release"; then
  4214.     $echo "$modename: warning: \`-release' is ignored for objects" 1>&2
  4215.       fi
  4216.  
  4217.       case $output in
  4218.       *.lo)
  4219.     if test -n "$objs$old_deplibs"; then
  4220.       $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
  4221.       exit $EXIT_FAILURE
  4222.     fi
  4223.     libobj="$output"
  4224.     obj=`$echo "X$output" | $Xsed -e "$lo2o"`
  4225.     ;;
  4226.       *)
  4227.     libobj=
  4228.     obj="$output"
  4229.     ;;
  4230.       esac
  4231.  
  4232.       # Delete the old objects.
  4233.       $run $rm $obj $libobj
  4234.  
  4235.       # Objects from convenience libraries.  This assumes
  4236.       # single-version convenience libraries.  Whenever we create
  4237.       # different ones for PIC/non-PIC, this we'll have to duplicate
  4238.       # the extraction.
  4239.       reload_conv_objs=
  4240.       gentop=
  4241.       # reload_cmds runs $LD directly, so let us get rid of
  4242.       # -Wl from whole_archive_flag_spec
  4243.       wl=
  4244.  
  4245.       if test -n "$convenience"; then
  4246.     if test -n "$whole_archive_flag_spec"; then
  4247.       eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
  4248.     else
  4249.       gentop="$output_objdir/${obj}x"
  4250.       generated="$generated $gentop"
  4251.  
  4252.       func_extract_archives $gentop $convenience
  4253.       reload_conv_objs="$reload_objs $func_extract_archives_result"
  4254.     fi
  4255.       fi
  4256.  
  4257.       # Create the old-style object.
  4258.       reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
  4259.  
  4260.       output="$obj"
  4261.       cmds=$reload_cmds
  4262.       save_ifs="$IFS"; IFS='~'
  4263.       for cmd in $cmds; do
  4264.     IFS="$save_ifs"
  4265.     eval cmd=\"$cmd\"
  4266.     $show "$cmd"
  4267.     $run eval "$cmd" || exit $?
  4268.       done
  4269.       IFS="$save_ifs"
  4270.  
  4271.       # Exit if we aren't doing a library object file.
  4272.       if test -z "$libobj"; then
  4273.     if test -n "$gentop"; then
  4274.       $show "${rm}r $gentop"
  4275.       $run ${rm}r $gentop
  4276.     fi
  4277.  
  4278.     exit $EXIT_SUCCESS
  4279.       fi
  4280.  
  4281.       if test "$build_libtool_libs" != yes; then
  4282.     if test -n "$gentop"; then
  4283.       $show "${rm}r $gentop"
  4284.       $run ${rm}r $gentop
  4285.     fi
  4286.  
  4287.     # Create an invalid libtool object if no PIC, so that we don't
  4288.     # accidentally link it into a program.
  4289.     # $show "echo timestamp > $libobj"
  4290.     # $run eval "echo timestamp > $libobj" || exit $?
  4291.     exit $EXIT_SUCCESS
  4292.       fi
  4293.  
  4294.       if test -n "$pic_flag" || test "$pic_mode" != default; then
  4295.     # Only do commands if we really have different PIC objects.
  4296.     reload_objs="$libobjs $reload_conv_objs"
  4297.     output="$libobj"
  4298.     cmds=$reload_cmds
  4299.     save_ifs="$IFS"; IFS='~'
  4300.     for cmd in $cmds; do
  4301.       IFS="$save_ifs"
  4302.       eval cmd=\"$cmd\"
  4303.       $show "$cmd"
  4304.       $run eval "$cmd" || exit $?
  4305.     done
  4306.     IFS="$save_ifs"
  4307.       fi
  4308.  
  4309.       if test -n "$gentop"; then
  4310.     $show "${rm}r $gentop"
  4311.     $run ${rm}r $gentop
  4312.       fi
  4313.  
  4314.       exit $EXIT_SUCCESS
  4315.       ;;
  4316.  
  4317.     prog)
  4318.       case $host in
  4319.     *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
  4320.       esac
  4321.       if test -n "$vinfo"; then
  4322.     $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
  4323.       fi
  4324.  
  4325.       if test -n "$release"; then
  4326.     $echo "$modename: warning: \`-release' is ignored for programs" 1>&2
  4327.       fi
  4328.  
  4329.       if test "$preload" = yes; then
  4330.     if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
  4331.        test "$dlopen_self_static" = unknown; then
  4332.       $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
  4333.     fi
  4334.       fi
  4335.  
  4336.       case $host in
  4337.       *-*-rhapsody* | *-*-darwin1.[012])
  4338.     # On Rhapsody replace the C library is the System framework
  4339.     compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
  4340.     finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
  4341.     ;;
  4342.       esac
  4343.  
  4344.       case $host in
  4345.       *darwin*)
  4346.         # Don't allow lazy linking, it breaks C++ global constructors
  4347.         if test "$tagname" = CXX ; then
  4348.         compile_command="$compile_command ${wl}-bind_at_load"
  4349.         finalize_command="$finalize_command ${wl}-bind_at_load"
  4350.         fi
  4351.         ;;
  4352.       esac
  4353.  
  4354.  
  4355.       # move library search paths that coincide with paths to not yet
  4356.       # installed libraries to the beginning of the library search list
  4357.       new_libs=
  4358.       for path in $notinst_path; do
  4359.     case " $new_libs " in
  4360.     *" -L$path/$objdir "*) ;;
  4361.     *)
  4362.       case " $compile_deplibs " in
  4363.       *" -L$path/$objdir "*)
  4364.         new_libs="$new_libs -L$path/$objdir" ;;
  4365.       esac
  4366.       ;;
  4367.     esac
  4368.       done
  4369.       for deplib in $compile_deplibs; do
  4370.     case $deplib in
  4371.     -L*)
  4372.       case " $new_libs " in
  4373.       *" $deplib "*) ;;
  4374.       *) new_libs="$new_libs $deplib" ;;
  4375.       esac
  4376.       ;;
  4377.     *) new_libs="$new_libs $deplib" ;;
  4378.     esac
  4379.       done
  4380.       compile_deplibs="$new_libs"
  4381.  
  4382.  
  4383.       compile_command="$compile_command $compile_deplibs"
  4384.       finalize_command="$finalize_command $finalize_deplibs"
  4385.  
  4386.       if test -n "$rpath$xrpath"; then
  4387.     # If the user specified any rpath flags, then add them.
  4388.     for libdir in $rpath $xrpath; do
  4389.       # This is the magic to use -rpath.
  4390.       case "$finalize_rpath " in
  4391.       *" $libdir "*) ;;
  4392.       *) finalize_rpath="$finalize_rpath $libdir" ;;
  4393.       esac
  4394.     done
  4395.       fi
  4396.  
  4397.       # Now hardcode the library paths
  4398.       rpath=
  4399.       hardcode_libdirs=
  4400.       for libdir in $compile_rpath $finalize_rpath; do
  4401.     if test -n "$hardcode_libdir_flag_spec"; then
  4402.       if test -n "$hardcode_libdir_separator"; then
  4403.         if test -z "$hardcode_libdirs"; then
  4404.           hardcode_libdirs="$libdir"
  4405.         else
  4406.           # Just accumulate the unique libdirs.
  4407.           case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
  4408.           *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
  4409.         ;;
  4410.           *)
  4411.         hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
  4412.         ;;
  4413.           esac
  4414.         fi
  4415.       else
  4416.         eval flag=\"$hardcode_libdir_flag_spec\"
  4417.         rpath="$rpath $flag"
  4418.       fi
  4419.     elif test -n "$runpath_var"; then
  4420.       case "$perm_rpath " in
  4421.       *" $libdir "*) ;;
  4422.       *) perm_rpath="$perm_rpath $libdir" ;;
  4423.       esac
  4424.     fi
  4425.     case $host in
  4426.     *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
  4427.       testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'`
  4428.       case :$dllsearchpath: in
  4429.       *":$libdir:"*) ;;
  4430.       *) dllsearchpath="$dllsearchpath:$libdir";;
  4431.       esac
  4432.       case :$dllsearchpath: in
  4433.       *":$testbindir:"*) ;;
  4434.       *) dllsearchpath="$dllsearchpath:$testbindir";;
  4435.       esac
  4436.       ;;
  4437.     esac
  4438.       done
  4439.       # Substitute the hardcoded libdirs into the rpath.
  4440.       if test -n "$hardcode_libdir_separator" &&
  4441.      test -n "$hardcode_libdirs"; then
  4442.     libdir="$hardcode_libdirs"
  4443.     eval rpath=\" $hardcode_libdir_flag_spec\"
  4444.       fi
  4445.       compile_rpath="$rpath"
  4446.  
  4447.       rpath=
  4448.       hardcode_libdirs=
  4449.       for libdir in $finalize_rpath; do
  4450.     if test -n "$hardcode_libdir_flag_spec"; then
  4451.       if test -n "$hardcode_libdir_separator"; then
  4452.         if test -z "$hardcode_libdirs"; then
  4453.           hardcode_libdirs="$libdir"
  4454.         else
  4455.           # Just accumulate the unique libdirs.
  4456.           case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
  4457.           *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
  4458.         ;;
  4459.           *)
  4460.         hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
  4461.         ;;
  4462.           esac
  4463.         fi
  4464.       else
  4465.         eval flag=\"$hardcode_libdir_flag_spec\"
  4466.         rpath="$rpath $flag"
  4467.       fi
  4468.     elif test -n "$runpath_var"; then
  4469.       case "$finalize_perm_rpath " in
  4470.       *" $libdir "*) ;;
  4471.       *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
  4472.       esac
  4473.     fi
  4474.       done
  4475.       # Substitute the hardcoded libdirs into the rpath.
  4476.       if test -n "$hardcode_libdir_separator" &&
  4477.      test -n "$hardcode_libdirs"; then
  4478.     libdir="$hardcode_libdirs"
  4479.     eval rpath=\" $hardcode_libdir_flag_spec\"
  4480.       fi
  4481.       finalize_rpath="$rpath"
  4482.  
  4483.       if test -n "$libobjs" && test "$build_old_libs" = yes; then
  4484.     # Transform all the library objects into standard objects.
  4485.     compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
  4486.     finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
  4487.       fi
  4488.  
  4489.       dlsyms=
  4490.       if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
  4491.     if test -n "$NM" && test -n "$global_symbol_pipe"; then
  4492.       dlsyms="${outputname}S.c"
  4493.     else
  4494.       $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
  4495.     fi
  4496.       fi
  4497.  
  4498.       if test -n "$dlsyms"; then
  4499.     case $dlsyms in
  4500.     "") ;;
  4501.     *.c)
  4502.       # Discover the nlist of each of the dlfiles.
  4503.       nlist="$output_objdir/${outputname}.nm"
  4504.  
  4505.       $show "$rm $nlist ${nlist}S ${nlist}T"
  4506.       $run $rm "$nlist" "${nlist}S" "${nlist}T"
  4507.  
  4508.       # Parse the name list into a source file.
  4509.       $show "creating $output_objdir/$dlsyms"
  4510.  
  4511.       test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
  4512. /* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
  4513. /* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
  4514.  
  4515. #ifdef __cplusplus
  4516. extern \"C\" {
  4517. #endif
  4518.  
  4519. /* Prevent the only kind of declaration conflicts we can make. */
  4520. #define lt_preloaded_symbols some_other_symbol
  4521.  
  4522. /* External symbol declarations for the compiler. */\
  4523. "
  4524.  
  4525.       if test "$dlself" = yes; then
  4526.         $show "generating symbol list for \`$output'"
  4527.  
  4528.         test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
  4529.  
  4530.         # Add our own program objects to the symbol list.
  4531.         progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
  4532.         for arg in $progfiles; do
  4533.           $show "extracting global C symbols from \`$arg'"
  4534.           $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
  4535.         done
  4536.  
  4537.         if test -n "$exclude_expsyms"; then
  4538.           $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
  4539.           $run eval '$mv "$nlist"T "$nlist"'
  4540.         fi
  4541.  
  4542.         if test -n "$export_symbols_regex"; then
  4543.           $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
  4544.           $run eval '$mv "$nlist"T "$nlist"'
  4545.         fi
  4546.  
  4547.         # Prepare the list of exported symbols
  4548.         if test -z "$export_symbols"; then
  4549.           export_symbols="$output_objdir/$outputname.exp"
  4550.           $run $rm $export_symbols
  4551.           $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
  4552.               case $host in
  4553.               *cygwin* | *mingw* )
  4554.             $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
  4555.         $run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
  4556.                 ;;
  4557.               esac
  4558.         else
  4559.           $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
  4560.           $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
  4561.           $run eval 'mv "$nlist"T "$nlist"'
  4562.               case $host in
  4563.               *cygwin* | *mingw* )
  4564.             $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
  4565.         $run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
  4566.                 ;;
  4567.               esac
  4568.         fi
  4569.       fi
  4570.  
  4571.       for arg in $dlprefiles; do
  4572.         $show "extracting global C symbols from \`$arg'"
  4573.         name=`$echo "$arg" | ${SED} -e 's%^.*/%%'`
  4574.         $run eval '$echo ": $name " >> "$nlist"'
  4575.         $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
  4576.       done
  4577.  
  4578.       if test -z "$run"; then
  4579.         # Make sure we have at least an empty file.
  4580.         test -f "$nlist" || : > "$nlist"
  4581.  
  4582.         if test -n "$exclude_expsyms"; then
  4583.           $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
  4584.           $mv "$nlist"T "$nlist"
  4585.         fi
  4586.  
  4587.         # Try sorting and uniquifying the output.
  4588.         if grep -v "^: " < "$nlist" |
  4589.         if sort -k 3 </dev/null >/dev/null 2>&1; then
  4590.           sort -k 3
  4591.         else
  4592.           sort +2
  4593.         fi |
  4594.         uniq > "$nlist"S; then
  4595.           :
  4596.         else
  4597.           grep -v "^: " < "$nlist" > "$nlist"S
  4598.         fi
  4599.  
  4600.         if test -f "$nlist"S; then
  4601.           eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
  4602.         else
  4603.           $echo '/* NONE */' >> "$output_objdir/$dlsyms"
  4604.         fi
  4605.  
  4606.         $echo >> "$output_objdir/$dlsyms" "\
  4607.  
  4608. #undef lt_preloaded_symbols
  4609.  
  4610. #if defined (__STDC__) && __STDC__
  4611. # define lt_ptr void *
  4612. #else
  4613. # define lt_ptr char *
  4614. # define const
  4615. #endif
  4616.  
  4617. /* The mapping between symbol names and symbols. */
  4618. "
  4619.  
  4620.         case $host in
  4621.         *cygwin* | *mingw* )
  4622.       $echo >> "$output_objdir/$dlsyms" "\
  4623. /* DATA imports from DLLs on WIN32 can't be const, because
  4624.    runtime relocations are performed -- see ld's documentation
  4625.    on pseudo-relocs */
  4626. struct {
  4627. "
  4628.           ;;
  4629.         * )
  4630.       $echo >> "$output_objdir/$dlsyms" "\
  4631. const struct {
  4632. "
  4633.           ;;
  4634.         esac
  4635.  
  4636.  
  4637.       $echo >> "$output_objdir/$dlsyms" "\
  4638.   const char *name;
  4639.   lt_ptr address;
  4640. }
  4641. lt_preloaded_symbols[] =
  4642. {\
  4643. "
  4644.  
  4645.         eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
  4646.  
  4647.         $echo >> "$output_objdir/$dlsyms" "\
  4648.   {0, (lt_ptr) 0}
  4649. };
  4650.  
  4651. /* This works around a problem in FreeBSD linker */
  4652. #ifdef FREEBSD_WORKAROUND
  4653. static const void *lt_preloaded_setup() {
  4654.   return lt_preloaded_symbols;
  4655. }
  4656. #endif
  4657.  
  4658. #ifdef __cplusplus
  4659. }
  4660. #endif\
  4661. "
  4662.       fi
  4663.  
  4664.       pic_flag_for_symtable=
  4665.       case $host in
  4666.       # compiling the symbol table file with pic_flag works around
  4667.       # a FreeBSD bug that causes programs to crash when -lm is
  4668.       # linked before any other PIC object.  But we must not use
  4669.       # pic_flag when linking with -static.  The problem exists in
  4670.       # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
  4671.       *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
  4672.         case "$compile_command " in
  4673.         *" -static "*) ;;
  4674.         *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";;
  4675.         esac;;
  4676.       *-*-hpux*)
  4677.         case "$compile_command " in
  4678.         *" -static "*) ;;
  4679.         *) pic_flag_for_symtable=" $pic_flag";;
  4680.         esac
  4681.       esac
  4682.  
  4683.       # Now compile the dynamic symbol file.
  4684.       $show "(cd $output_objdir && $LTCC  $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
  4685.       $run eval '(cd $output_objdir && $LTCC  $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
  4686.  
  4687.       # Clean up the generated files.
  4688.       $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
  4689.       $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
  4690.  
  4691.       # Transform the symbol file into the correct name.
  4692.           case $host in
  4693.           *cygwin* | *mingw* )
  4694.             if test -f "$output_objdir/${outputname}.def" ; then
  4695.               compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"`
  4696.               finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"`
  4697.             else
  4698.               compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
  4699.               finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
  4700.              fi
  4701.             ;;
  4702.           * )
  4703.             compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
  4704.             finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
  4705.             ;;
  4706.           esac
  4707.       ;;
  4708.     *)
  4709.       $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
  4710.       exit $EXIT_FAILURE
  4711.       ;;
  4712.     esac
  4713.       else
  4714.     # We keep going just in case the user didn't refer to
  4715.     # lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
  4716.     # really was required.
  4717.  
  4718.     # Nullify the symbol file.
  4719.     compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
  4720.     finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
  4721.       fi
  4722.  
  4723.       if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
  4724.     # Replace the output file specification.
  4725.     compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
  4726.     link_command="$compile_command$compile_rpath"
  4727.  
  4728.     # We have no uninstalled library dependencies, so finalize right now.
  4729.     $show "$link_command"
  4730.     $run eval "$link_command"
  4731.     exit_status=$?
  4732.  
  4733.     # Delete the generated files.
  4734.     if test -n "$dlsyms"; then
  4735.       $show "$rm $output_objdir/${outputname}S.${objext}"
  4736.       $run $rm "$output_objdir/${outputname}S.${objext}"
  4737.     fi
  4738.  
  4739.     exit $exit_status
  4740.       fi
  4741.  
  4742.       if test -n "$shlibpath_var"; then
  4743.     # We should set the shlibpath_var
  4744.     rpath=
  4745.     for dir in $temp_rpath; do
  4746.       case $dir in
  4747.       [\\/]* | [A-Za-z]:[\\/]*)
  4748.         # Absolute path.
  4749.         rpath="$rpath$dir:"
  4750.         ;;
  4751.       *)
  4752.         # Relative path: add a thisdir entry.
  4753.         rpath="$rpath\$thisdir/$dir:"
  4754.         ;;
  4755.       esac
  4756.     done
  4757.     temp_rpath="$rpath"
  4758.       fi
  4759.  
  4760.       if test -n "$compile_shlibpath$finalize_shlibpath"; then
  4761.     compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
  4762.       fi
  4763.       if test -n "$finalize_shlibpath"; then
  4764.     finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
  4765.       fi
  4766.  
  4767.       compile_var=
  4768.       finalize_var=
  4769.       if test -n "$runpath_var"; then
  4770.     if test -n "$perm_rpath"; then
  4771.       # We should set the runpath_var.
  4772.       rpath=
  4773.       for dir in $perm_rpath; do
  4774.         rpath="$rpath$dir:"
  4775.       done
  4776.       compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
  4777.     fi
  4778.     if test -n "$finalize_perm_rpath"; then
  4779.       # We should set the runpath_var.
  4780.       rpath=
  4781.       for dir in $finalize_perm_rpath; do
  4782.         rpath="$rpath$dir:"
  4783.       done
  4784.       finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
  4785.     fi
  4786.       fi
  4787.  
  4788.       if test "$no_install" = yes; then
  4789.     # We don't need to create a wrapper script.
  4790.     link_command="$compile_var$compile_command$compile_rpath"
  4791.     # Replace the output file specification.
  4792.     link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
  4793.     # Delete the old output file.
  4794.     $run $rm $output
  4795.     # Link the executable and exit
  4796.     $show "$link_command"
  4797.     $run eval "$link_command" || exit $?
  4798.     exit $EXIT_SUCCESS
  4799.       fi
  4800.  
  4801.       if test "$hardcode_action" = relink; then
  4802.     # Fast installation is not supported
  4803.     link_command="$compile_var$compile_command$compile_rpath"
  4804.     relink_command="$finalize_var$finalize_command$finalize_rpath"
  4805.  
  4806.     $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
  4807.     $echo "$modename: \`$output' will be relinked during installation" 1>&2
  4808.       else
  4809.     if test "$fast_install" != no; then
  4810.       link_command="$finalize_var$compile_command$finalize_rpath"
  4811.       if test "$fast_install" = yes; then
  4812.         relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
  4813.       else
  4814.         # fast_install is set to needless
  4815.         relink_command=
  4816.       fi
  4817.     else
  4818.       link_command="$compile_var$compile_command$compile_rpath"
  4819.       relink_command="$finalize_var$finalize_command$finalize_rpath"
  4820.     fi
  4821.       fi
  4822.  
  4823.       # Replace the output file specification.
  4824.       link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
  4825.  
  4826.       # Delete the old output files.
  4827.       $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
  4828.  
  4829.       $show "$link_command"
  4830.       $run eval "$link_command" || exit $?
  4831.  
  4832.       # Now create the wrapper script.
  4833.       $show "creating $output"
  4834.  
  4835.       # Quote the relink command for shipping.
  4836.       if test -n "$relink_command"; then
  4837.     # Preserve any variables that may affect compiler behavior
  4838.     for var in $variables_saved_for_relink; do
  4839.       if eval test -z \"\${$var+set}\"; then
  4840.         relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
  4841.       elif eval var_value=\$$var; test -z "$var_value"; then
  4842.         relink_command="$var=; export $var; $relink_command"
  4843.       else
  4844.         var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
  4845.         relink_command="$var=\"$var_value\"; export $var; $relink_command"
  4846.       fi
  4847.     done
  4848.     relink_command="(cd `pwd`; $relink_command)"
  4849.     relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
  4850.       fi
  4851.  
  4852.       # Quote $echo for shipping.
  4853.       if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then
  4854.     case $progpath in
  4855.     [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
  4856.     *) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
  4857.     esac
  4858.     qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
  4859.       else
  4860.     qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
  4861.       fi
  4862.  
  4863.       # Only actually do things if our run command is non-null.
  4864.       if test -z "$run"; then
  4865.     # win32 will think the script is a binary if it has
  4866.     # a .exe suffix, so we strip it off here.
  4867.     case $output in
  4868.       *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;;
  4869.     esac
  4870.     # test for cygwin because mv fails w/o .exe extensions
  4871.     case $host in
  4872.       *cygwin*)
  4873.         exeext=.exe
  4874.         outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;;
  4875.       *) exeext= ;;
  4876.     esac
  4877.     case $host in
  4878.       *cygwin* | *mingw* )
  4879.             output_name=`basename $output`
  4880.             output_path=`dirname $output`
  4881.             cwrappersource="$output_path/$objdir/lt-$output_name.c"
  4882.             cwrapper="$output_path/$output_name.exe"
  4883.             $rm $cwrappersource $cwrapper
  4884.             trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
  4885.  
  4886.         cat > $cwrappersource <<EOF
  4887.  
  4888. /* $cwrappersource - temporary wrapper executable for $objdir/$outputname
  4889.    Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
  4890.  
  4891.    The $output program cannot be directly executed until all the libtool
  4892.    libraries that it depends on are installed.
  4893.  
  4894.    This wrapper executable should never be moved out of the build directory.
  4895.    If it is, it will not operate correctly.
  4896.  
  4897.    Currently, it simply execs the wrapper *script* "/bin/sh $output",
  4898.    but could eventually absorb all of the scripts functionality and
  4899.    exec $objdir/$outputname directly.
  4900. */
  4901. EOF
  4902.         cat >> $cwrappersource<<"EOF"
  4903. #include <stdio.h>
  4904. #include <stdlib.h>
  4905. #include <unistd.h>
  4906. #include <malloc.h>
  4907. #include <stdarg.h>
  4908. #include <assert.h>
  4909. #include <string.h>
  4910. #include <ctype.h>
  4911. #include <sys/stat.h>
  4912.  
  4913. #if defined(PATH_MAX)
  4914. # define LT_PATHMAX PATH_MAX
  4915. #elif defined(MAXPATHLEN)
  4916. # define LT_PATHMAX MAXPATHLEN
  4917. #else
  4918. # define LT_PATHMAX 1024
  4919. #endif
  4920.  
  4921. #ifndef DIR_SEPARATOR
  4922. # define DIR_SEPARATOR '/'
  4923. # define PATH_SEPARATOR ':'
  4924. #endif
  4925.  
  4926. #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
  4927.   defined (__OS2__)
  4928. # define HAVE_DOS_BASED_FILE_SYSTEM
  4929. # ifndef DIR_SEPARATOR_2
  4930. #  define DIR_SEPARATOR_2 '\\'
  4931. # endif
  4932. # ifndef PATH_SEPARATOR_2
  4933. #  define PATH_SEPARATOR_2 ';'
  4934. # endif
  4935. #endif
  4936.  
  4937. #ifndef DIR_SEPARATOR_2
  4938. # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
  4939. #else /* DIR_SEPARATOR_2 */
  4940. # define IS_DIR_SEPARATOR(ch) \
  4941.         (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
  4942. #endif /* DIR_SEPARATOR_2 */
  4943.  
  4944. #ifndef PATH_SEPARATOR_2
  4945. # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
  4946. #else /* PATH_SEPARATOR_2 */
  4947. # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
  4948. #endif /* PATH_SEPARATOR_2 */
  4949.  
  4950. #define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
  4951. #define XFREE(stale) do { \
  4952.   if (stale) { free ((void *) stale); stale = 0; } \
  4953. } while (0)
  4954.  
  4955. /* -DDEBUG is fairly common in CFLAGS.  */
  4956. #undef DEBUG
  4957. #if defined DEBUGWRAPPER
  4958. # define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__)
  4959. #else
  4960. # define DEBUG(format, ...)
  4961. #endif
  4962.  
  4963. const char *program_name = NULL;
  4964.  
  4965. void * xmalloc (size_t num);
  4966. char * xstrdup (const char *string);
  4967. const char * base_name (const char *name);
  4968. char * find_executable(const char *wrapper);
  4969. int    check_executable(const char *path);
  4970. char * strendzap(char *str, const char *pat);
  4971. void lt_fatal (const char *message, ...);
  4972.  
  4973. int
  4974. main (int argc, char *argv[])
  4975. {
  4976.   char **newargz;
  4977.   int i;
  4978.  
  4979.   program_name = (char *) xstrdup (base_name (argv[0]));
  4980.   DEBUG("(main) argv[0]      : %s\n",argv[0]);
  4981.   DEBUG("(main) program_name : %s\n",program_name);
  4982.   newargz = XMALLOC(char *, argc+2);
  4983. EOF
  4984.  
  4985.             cat >> $cwrappersource <<EOF
  4986.   newargz[0] = (char *) xstrdup("$SHELL");
  4987. EOF
  4988.  
  4989.             cat >> $cwrappersource <<"EOF"
  4990.   newargz[1] = find_executable(argv[0]);
  4991.   if (newargz[1] == NULL)
  4992.     lt_fatal("Couldn't find %s", argv[0]);
  4993.   DEBUG("(main) found exe at : %s\n",newargz[1]);
  4994.   /* we know the script has the same name, without the .exe */
  4995.   /* so make sure newargz[1] doesn't end in .exe */
  4996.   strendzap(newargz[1],".exe");
  4997.   for (i = 1; i < argc; i++)
  4998.     newargz[i+1] = xstrdup(argv[i]);
  4999.   newargz[argc+1] = NULL;
  5000.  
  5001.   for (i=0; i<argc+1; i++)
  5002.   {
  5003.     DEBUG("(main) newargz[%d]   : %s\n",i,newargz[i]);
  5004.     ;
  5005.   }
  5006.  
  5007. EOF
  5008.  
  5009.             case $host_os in
  5010.               mingw*)
  5011.                 cat >> $cwrappersource <<EOF
  5012.   execv("$SHELL",(char const **)newargz);
  5013. EOF
  5014.               ;;
  5015.               *)
  5016.                 cat >> $cwrappersource <<EOF
  5017.   execv("$SHELL",newargz);
  5018. EOF
  5019.               ;;
  5020.             esac
  5021.  
  5022.             cat >> $cwrappersource <<"EOF"
  5023.   return 127;
  5024. }
  5025.  
  5026. void *
  5027. xmalloc (size_t num)
  5028. {
  5029.   void * p = (void *) malloc (num);
  5030.   if (!p)
  5031.     lt_fatal ("Memory exhausted");
  5032.  
  5033.   return p;
  5034. }
  5035.  
  5036. char *
  5037. xstrdup (const char *string)
  5038. {
  5039.   return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
  5040. ;
  5041. }
  5042.  
  5043. const char *
  5044. base_name (const char *name)
  5045. {
  5046.   const char *base;
  5047.  
  5048. #if defined (HAVE_DOS_BASED_FILE_SYSTEM)
  5049.   /* Skip over the disk name in MSDOS pathnames. */
  5050.   if (isalpha ((unsigned char)name[0]) && name[1] == ':')
  5051.     name += 2;
  5052. #endif
  5053.  
  5054.   for (base = name; *name; name++)
  5055.     if (IS_DIR_SEPARATOR (*name))
  5056.       base = name + 1;
  5057.   return base;
  5058. }
  5059.  
  5060. int
  5061. check_executable(const char * path)
  5062. {
  5063.   struct stat st;
  5064.  
  5065.   DEBUG("(check_executable)  : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!");
  5066.   if ((!path) || (!*path))
  5067.     return 0;
  5068.  
  5069.   if ((stat (path, &st) >= 0) &&
  5070.       (
  5071.         /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */
  5072. #if defined (S_IXOTH)
  5073.        ((st.st_mode & S_IXOTH) == S_IXOTH) ||
  5074. #endif
  5075. #if defined (S_IXGRP)
  5076.        ((st.st_mode & S_IXGRP) == S_IXGRP) ||
  5077. #endif
  5078.        ((st.st_mode & S_IXUSR) == S_IXUSR))
  5079.       )
  5080.     return 1;
  5081.   else
  5082.     return 0;
  5083. }
  5084.  
  5085. /* Searches for the full path of the wrapper.  Returns
  5086.    newly allocated full path name if found, NULL otherwise */
  5087. char *
  5088. find_executable (const char* wrapper)
  5089. {
  5090.   int has_slash = 0;
  5091.   const char* p;
  5092.   const char* p_next;
  5093.   /* static buffer for getcwd */
  5094.   char tmp[LT_PATHMAX + 1];
  5095.   int tmp_len;
  5096.   char* concat_name;
  5097.  
  5098.   DEBUG("(find_executable)  : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!");
  5099.  
  5100.   if ((wrapper == NULL) || (*wrapper == '\0'))
  5101.     return NULL;
  5102.  
  5103.   /* Absolute path? */
  5104. #if defined (HAVE_DOS_BASED_FILE_SYSTEM)
  5105.   if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':')
  5106.   {
  5107.     concat_name = xstrdup (wrapper);
  5108.     if (check_executable(concat_name))
  5109.       return concat_name;
  5110.     XFREE(concat_name);
  5111.   }
  5112.   else
  5113.   {
  5114. #endif
  5115.     if (IS_DIR_SEPARATOR (wrapper[0]))
  5116.     {
  5117.       concat_name = xstrdup (wrapper);
  5118.       if (check_executable(concat_name))
  5119.         return concat_name;
  5120.       XFREE(concat_name);
  5121.     }
  5122. #if defined (HAVE_DOS_BASED_FILE_SYSTEM)
  5123.   }
  5124. #endif
  5125.  
  5126.   for (p = wrapper; *p; p++)
  5127.     if (*p == '/')
  5128.     {
  5129.       has_slash = 1;
  5130.       break;
  5131.     }
  5132.   if (!has_slash)
  5133.   {
  5134.     /* no slashes; search PATH */
  5135.     const char* path = getenv ("PATH");
  5136.     if (path != NULL)
  5137.     {
  5138.       for (p = path; *p; p = p_next)
  5139.       {
  5140.         const char* q;
  5141.         size_t p_len;
  5142.         for (q = p; *q; q++)
  5143.           if (IS_PATH_SEPARATOR(*q))
  5144.             break;
  5145.         p_len = q - p;
  5146.         p_next = (*q == '\0' ? q : q + 1);
  5147.         if (p_len == 0)
  5148.         {
  5149.           /* empty path: current directory */
  5150.           if (getcwd (tmp, LT_PATHMAX) == NULL)
  5151.             lt_fatal ("getcwd failed");
  5152.           tmp_len = strlen(tmp);
  5153.           concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
  5154.           memcpy (concat_name, tmp, tmp_len);
  5155.           concat_name[tmp_len] = '/';
  5156.           strcpy (concat_name + tmp_len + 1, wrapper);
  5157.         }
  5158.         else
  5159.         {
  5160.           concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1);
  5161.           memcpy (concat_name, p, p_len);
  5162.           concat_name[p_len] = '/';
  5163.           strcpy (concat_name + p_len + 1, wrapper);
  5164.         }
  5165.         if (check_executable(concat_name))
  5166.           return concat_name;
  5167.         XFREE(concat_name);
  5168.       }
  5169.     }
  5170.     /* not found in PATH; assume curdir */
  5171.   }
  5172.   /* Relative path | not found in path: prepend cwd */
  5173.   if (getcwd (tmp, LT_PATHMAX) == NULL)
  5174.     lt_fatal ("getcwd failed");
  5175.   tmp_len = strlen(tmp);
  5176.   concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
  5177.   memcpy (concat_name, tmp, tmp_len);
  5178.   concat_name[tmp_len] = '/';
  5179.   strcpy (concat_name + tmp_len + 1, wrapper);
  5180.  
  5181.   if (check_executable(concat_name))
  5182.     return concat_name;
  5183.   XFREE(concat_name);
  5184.   return NULL;
  5185. }
  5186.  
  5187. char *
  5188. strendzap(char *str, const char *pat)
  5189. {
  5190.   size_t len, patlen;
  5191.  
  5192.   assert(str != NULL);
  5193.   assert(pat != NULL);
  5194.  
  5195.   len = strlen(str);
  5196.   patlen = strlen(pat);
  5197.  
  5198.   if (patlen <= len)
  5199.   {
  5200.     str += len - patlen;
  5201.     if (strcmp(str, pat) == 0)
  5202.       *str = '\0';
  5203.   }
  5204.   return str;
  5205. }
  5206.  
  5207. static void
  5208. lt_error_core (int exit_status, const char * mode,
  5209.           const char * message, va_list ap)
  5210. {
  5211.   fprintf (stderr, "%s: %s: ", program_name, mode);
  5212.   vfprintf (stderr, message, ap);
  5213.   fprintf (stderr, ".\n");
  5214.  
  5215.   if (exit_status >= 0)
  5216.     exit (exit_status);
  5217. }
  5218.  
  5219. void
  5220. lt_fatal (const char *message, ...)
  5221. {
  5222.   va_list ap;
  5223.   va_start (ap, message);
  5224.   lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
  5225.   va_end (ap);
  5226. }
  5227. EOF
  5228.           # we should really use a build-platform specific compiler
  5229.           # here, but OTOH, the wrappers (shell script and this C one)
  5230.           # are only useful if you want to execute the "real" binary.
  5231.           # Since the "real" binary is built for $host, then this
  5232.           # wrapper might as well be built for $host, too.
  5233.           $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource
  5234.           ;;
  5235.         esac
  5236.         $rm $output
  5237.         trap "$rm $output; exit $EXIT_FAILURE" 1 2 15
  5238.  
  5239.     $echo > $output "\
  5240. #! $SHELL
  5241.  
  5242. # $output - temporary wrapper script for $objdir/$outputname
  5243. # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
  5244. #
  5245. # The $output program cannot be directly executed until all the libtool
  5246. # libraries that it depends on are installed.
  5247. #
  5248. # This wrapper script should never be moved out of the build directory.
  5249. # If it is, it will not operate correctly.
  5250.  
  5251. # Sed substitution that helps us do robust quoting.  It backslashifies
  5252. # metacharacters that are still active within double-quoted strings.
  5253. Xsed='${SED} -e 1s/^X//'
  5254. sed_quote_subst='$sed_quote_subst'
  5255.  
  5256. # The HP-UX ksh and POSIX shell print the target directory to stdout
  5257. # if CDPATH is set.
  5258. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
  5259.  
  5260. relink_command=\"$relink_command\"
  5261.  
  5262. # This environment variable determines our operation mode.
  5263. if test \"\$libtool_install_magic\" = \"$magic\"; then
  5264.   # install mode needs the following variable:
  5265.   notinst_deplibs='$notinst_deplibs'
  5266. else
  5267.   # When we are sourced in execute mode, \$file and \$echo are already set.
  5268.   if test \"\$libtool_execute_magic\" != \"$magic\"; then
  5269.     echo=\"$qecho\"
  5270.     file=\"\$0\"
  5271.     # Make sure echo works.
  5272.     if test \"X\$1\" = X--no-reexec; then
  5273.       # Discard the --no-reexec flag, and continue.
  5274.       shift
  5275.     elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
  5276.       # Yippee, \$echo works!
  5277.       :
  5278.     else
  5279.       # Restart under the correct shell, and then maybe \$echo will work.
  5280.       exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
  5281.     fi
  5282.   fi\
  5283. "
  5284.     $echo >> $output "\
  5285.  
  5286.   # Find the directory that this script lives in.
  5287.   thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
  5288.   test \"x\$thisdir\" = \"x\$file\" && thisdir=.
  5289.  
  5290.   # Follow symbolic links until we get to the real thisdir.
  5291.   file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
  5292.   while test -n \"\$file\"; do
  5293.     destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
  5294.  
  5295.     # If there was a directory component, then change thisdir.
  5296.     if test \"x\$destdir\" != \"x\$file\"; then
  5297.       case \"\$destdir\" in
  5298.       [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
  5299.       *) thisdir=\"\$thisdir/\$destdir\" ;;
  5300.       esac
  5301.     fi
  5302.  
  5303.     file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
  5304.     file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
  5305.   done
  5306.  
  5307.   # Try to get the absolute directory name.
  5308.   absdir=\`cd \"\$thisdir\" && pwd\`
  5309.   test -n \"\$absdir\" && thisdir=\"\$absdir\"
  5310. "
  5311.  
  5312.     if test "$fast_install" = yes; then
  5313.       $echo >> $output "\
  5314.   program=lt-'$outputname'$exeext
  5315.   progdir=\"\$thisdir/$objdir\"
  5316.  
  5317.   if test ! -f \"\$progdir/\$program\" || \\
  5318.      { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
  5319.        test \"X\$file\" != \"X\$progdir/\$program\"; }; then
  5320.  
  5321.     file=\"\$\$-\$program\"
  5322.  
  5323.     if test ! -d \"\$progdir\"; then
  5324.       $mkdir \"\$progdir\"
  5325.     else
  5326.       $rm \"\$progdir/\$file\"
  5327.     fi"
  5328.  
  5329.       $echo >> $output "\
  5330.  
  5331.     # relink executable if necessary
  5332.     if test -n \"\$relink_command\"; then
  5333.       if relink_command_output=\`eval \$relink_command 2>&1\`; then :
  5334.       else
  5335.     $echo \"\$relink_command_output\" >&2
  5336.     $rm \"\$progdir/\$file\"
  5337.     exit $EXIT_FAILURE
  5338.       fi
  5339.     fi
  5340.  
  5341.     $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
  5342.     { $rm \"\$progdir/\$program\";
  5343.       $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
  5344.     $rm \"\$progdir/\$file\"
  5345.   fi"
  5346.     else
  5347.       $echo >> $output "\
  5348.   program='$outputname'
  5349.   progdir=\"\$thisdir/$objdir\"
  5350. "
  5351.     fi
  5352.  
  5353.     $echo >> $output "\
  5354.  
  5355.   if test -f \"\$progdir/\$program\"; then"
  5356.  
  5357.     # Export our shlibpath_var if we have one.
  5358.     if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
  5359.       $echo >> $output "\
  5360.     # Add our own library path to $shlibpath_var
  5361.     $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
  5362.  
  5363.     # Some systems cannot cope with colon-terminated $shlibpath_var
  5364.     # The second colon is a workaround for a bug in BeOS R4 sed
  5365.     $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
  5366.  
  5367.     export $shlibpath_var
  5368. "
  5369.     fi
  5370.  
  5371.     # fixup the dll searchpath if we need to.
  5372.     if test -n "$dllsearchpath"; then
  5373.       $echo >> $output "\
  5374.     # Add the dll search path components to the executable PATH
  5375.     PATH=$dllsearchpath:\$PATH
  5376. "
  5377.     fi
  5378.  
  5379.     $echo >> $output "\
  5380.     if test \"\$libtool_execute_magic\" != \"$magic\"; then
  5381.       # Run the actual program with our arguments.
  5382. "
  5383.     case $host in
  5384.     # Backslashes separate directories on plain windows
  5385.     *-*-mingw | *-*-os2*)
  5386.       $echo >> $output "\
  5387.       exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
  5388. "
  5389.       ;;
  5390.  
  5391.     *)
  5392.       $echo >> $output "\
  5393.       exec \"\$progdir/\$program\" \${1+\"\$@\"}
  5394. "
  5395.       ;;
  5396.     esac
  5397.     $echo >> $output "\
  5398.       \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
  5399.       exit $EXIT_FAILURE
  5400.     fi
  5401.   else
  5402.     # The program doesn't exist.
  5403.     \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
  5404.     \$echo \"This script is just a wrapper for \$program.\" 1>&2
  5405.     $echo \"See the $PACKAGE documentation for more information.\" 1>&2
  5406.     exit $EXIT_FAILURE
  5407.   fi
  5408. fi\
  5409. "
  5410.     chmod +x $output
  5411.       fi
  5412.       exit $EXIT_SUCCESS
  5413.       ;;
  5414.     esac
  5415.  
  5416.     # See if we need to build an old-fashioned archive.
  5417.     for oldlib in $oldlibs; do
  5418.  
  5419.       if test "$build_libtool_libs" = convenience; then
  5420.     oldobjs="$libobjs_save"
  5421.     addlibs="$convenience"
  5422.     build_libtool_libs=no
  5423.       else
  5424.     if test "$build_libtool_libs" = module; then
  5425.       oldobjs="$libobjs_save"
  5426.       build_libtool_libs=no
  5427.     else
  5428.       oldobjs="$old_deplibs $non_pic_objects"
  5429.     fi
  5430.     addlibs="$old_convenience"
  5431.       fi
  5432.  
  5433.       if test -n "$addlibs"; then
  5434.     gentop="$output_objdir/${outputname}x"
  5435.     generated="$generated $gentop"
  5436.  
  5437.     func_extract_archives $gentop $addlibs
  5438.     oldobjs="$oldobjs $func_extract_archives_result"
  5439.       fi
  5440.  
  5441.       # Do each command in the archive commands.
  5442.       if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
  5443.        cmds=$old_archive_from_new_cmds
  5444.       else
  5445.     # POSIX demands no paths to be encoded in archives.  We have
  5446.     # to avoid creating archives with duplicate basenames if we
  5447.     # might have to extract them afterwards, e.g., when creating a
  5448.     # static archive out of a convenience library, or when linking
  5449.     # the entirety of a libtool archive into another (currently
  5450.     # not supported by libtool).
  5451.     if (for obj in $oldobjs
  5452.         do
  5453.           $echo "X$obj" | $Xsed -e 's%^.*/%%'
  5454.         done | sort | sort -uc >/dev/null 2>&1); then
  5455.       :
  5456.     else
  5457.       $echo "copying selected object files to avoid basename conflicts..."
  5458.  
  5459.       if test -z "$gentop"; then
  5460.         gentop="$output_objdir/${outputname}x"
  5461.         generated="$generated $gentop"
  5462.  
  5463.         $show "${rm}r $gentop"
  5464.         $run ${rm}r "$gentop"
  5465.         $show "$mkdir $gentop"
  5466.         $run $mkdir "$gentop"
  5467.         exit_status=$?
  5468.         if test "$exit_status" -ne 0 && test ! -d "$gentop"; then
  5469.           exit $exit_status
  5470.         fi
  5471.       fi
  5472.  
  5473.       save_oldobjs=$oldobjs
  5474.       oldobjs=
  5475.       counter=1
  5476.       for obj in $save_oldobjs
  5477.       do
  5478.         objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
  5479.         case " $oldobjs " in
  5480.         " ") oldobjs=$obj ;;
  5481.         *[\ /]"$objbase "*)
  5482.           while :; do
  5483.         # Make sure we don't pick an alternate name that also
  5484.         # overlaps.
  5485.         newobj=lt$counter-$objbase
  5486.         counter=`expr $counter + 1`
  5487.         case " $oldobjs " in
  5488.         *[\ /]"$newobj "*) ;;
  5489.         *) if test ! -f "$gentop/$newobj"; then break; fi ;;
  5490.         esac
  5491.           done
  5492.           $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
  5493.           $run ln "$obj" "$gentop/$newobj" ||
  5494.           $run cp "$obj" "$gentop/$newobj"
  5495.           oldobjs="$oldobjs $gentop/$newobj"
  5496.           ;;
  5497.         *) oldobjs="$oldobjs $obj" ;;
  5498.         esac
  5499.       done
  5500.     fi
  5501.  
  5502.     eval cmds=\"$old_archive_cmds\"
  5503.  
  5504.     if len=`expr "X$cmds" : ".*"` &&
  5505.          test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
  5506.       cmds=$old_archive_cmds
  5507.     else
  5508.       # the command line is too long to link in one step, link in parts
  5509.       $echo "using piecewise archive linking..."
  5510.       save_RANLIB=$RANLIB
  5511.       RANLIB=:
  5512.       objlist=
  5513.       concat_cmds=
  5514.       save_oldobjs=$oldobjs
  5515.  
  5516.       # Is there a better way of finding the last object in the list?
  5517.       for obj in $save_oldobjs
  5518.       do
  5519.         last_oldobj=$obj
  5520.       done
  5521.       for obj in $save_oldobjs
  5522.       do
  5523.         oldobjs="$objlist $obj"
  5524.         objlist="$objlist $obj"
  5525.         eval test_cmds=\"$old_archive_cmds\"
  5526.         if len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
  5527.            test "$len" -le "$max_cmd_len"; then
  5528.           :
  5529.         else
  5530.           # the above command should be used before it gets too long
  5531.           oldobjs=$objlist
  5532.           if test "$obj" = "$last_oldobj" ; then
  5533.             RANLIB=$save_RANLIB
  5534.           fi
  5535.           test -z "$concat_cmds" || concat_cmds=$concat_cmds~
  5536.           eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
  5537.           objlist=
  5538.         fi
  5539.       done
  5540.       RANLIB=$save_RANLIB
  5541.       oldobjs=$objlist
  5542.       if test "X$oldobjs" = "X" ; then
  5543.         eval cmds=\"\$concat_cmds\"
  5544.       else
  5545.         eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
  5546.       fi
  5547.     fi
  5548.       fi
  5549.       save_ifs="$IFS"; IFS='~'
  5550.       for cmd in $cmds; do
  5551.         eval cmd=\"$cmd\"
  5552.     IFS="$save_ifs"
  5553.     $show "$cmd"
  5554.     $run eval "$cmd" || exit $?
  5555.       done
  5556.       IFS="$save_ifs"
  5557.     done
  5558.  
  5559.     if test -n "$generated"; then
  5560.       $show "${rm}r$generated"
  5561.       $run ${rm}r$generated
  5562.     fi
  5563.  
  5564.     # Now create the libtool archive.
  5565.     case $output in
  5566.     *.la)
  5567.       old_library=
  5568.       test "$build_old_libs" = yes && old_library="$libname.$libext"
  5569.       $show "creating $output"
  5570.  
  5571.       # Preserve any variables that may affect compiler behavior
  5572.       for var in $variables_saved_for_relink; do
  5573.     if eval test -z \"\${$var+set}\"; then
  5574.       relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
  5575.     elif eval var_value=\$$var; test -z "$var_value"; then
  5576.       relink_command="$var=; export $var; $relink_command"
  5577.     else
  5578.       var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
  5579.       relink_command="$var=\"$var_value\"; export $var; $relink_command"
  5580.     fi
  5581.       done
  5582.       # Quote the link command for shipping.
  5583.       relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
  5584.       relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
  5585.       if test "$hardcode_automatic" = yes ; then
  5586.     relink_command=
  5587.       fi
  5588.  
  5589.  
  5590.       # Only create the output if not a dry run.
  5591.       if test -z "$run"; then
  5592.     for installed in no yes; do
  5593.       if test "$installed" = yes; then
  5594.         if test -z "$install_libdir"; then
  5595.           break
  5596.         fi
  5597.         output="$output_objdir/$outputname"i
  5598.         # Replace all uninstalled libtool libraries with the installed ones
  5599.         newdependency_libs=
  5600.         for deplib in $dependency_libs; do
  5601.           case $deplib in
  5602.           *.la)
  5603.         name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
  5604.         eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
  5605.         if test -z "$libdir"; then
  5606.           $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
  5607.           exit $EXIT_FAILURE
  5608.         fi
  5609.         newdependency_libs="$newdependency_libs $libdir/$name"
  5610.         ;;
  5611.           *) newdependency_libs="$newdependency_libs $deplib" ;;
  5612.           esac
  5613.         done
  5614.         dependency_libs="$newdependency_libs"
  5615.         newdlfiles=
  5616.         for lib in $dlfiles; do
  5617.           name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
  5618.           eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
  5619.           if test -z "$libdir"; then
  5620.         $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
  5621.         exit $EXIT_FAILURE
  5622.           fi
  5623.           newdlfiles="$newdlfiles $libdir/$name"
  5624.         done
  5625.         dlfiles="$newdlfiles"
  5626.         newdlprefiles=
  5627.         for lib in $dlprefiles; do
  5628.           name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
  5629.           eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
  5630.           if test -z "$libdir"; then
  5631.         $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
  5632.         exit $EXIT_FAILURE
  5633.           fi
  5634.           newdlprefiles="$newdlprefiles $libdir/$name"
  5635.         done
  5636.         dlprefiles="$newdlprefiles"
  5637.       else
  5638.         newdlfiles=
  5639.         for lib in $dlfiles; do
  5640.           case $lib in
  5641.         [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
  5642.         *) abs=`pwd`"/$lib" ;;
  5643.           esac
  5644.           newdlfiles="$newdlfiles $abs"
  5645.         done
  5646.         dlfiles="$newdlfiles"
  5647.         newdlprefiles=
  5648.         for lib in $dlprefiles; do
  5649.           case $lib in
  5650.         [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
  5651.         *) abs=`pwd`"/$lib" ;;
  5652.           esac
  5653.           newdlprefiles="$newdlprefiles $abs"
  5654.         done
  5655.         dlprefiles="$newdlprefiles"
  5656.       fi
  5657.       $rm $output
  5658.       # place dlname in correct position for cygwin
  5659.       tdlname=$dlname
  5660.       case $host,$output,$installed,$module,$dlname in
  5661.         *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
  5662.       esac
  5663.       $echo > $output "\
  5664. # $outputname - a libtool library file
  5665. # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
  5666. #
  5667. # Please DO NOT delete this file!
  5668. # It is necessary for linking the library.
  5669.  
  5670. # The name that we can dlopen(3).
  5671. dlname='$tdlname'
  5672.  
  5673. # Names of this library.
  5674. library_names='$library_names'
  5675.  
  5676. # The name of the static archive.
  5677. old_library='$old_library'
  5678.  
  5679. # Libraries that this one depends upon.
  5680. dependency_libs='$dependency_libs'
  5681.  
  5682. # Version information for $libname.
  5683. current=$current
  5684. age=$age
  5685. revision=$revision
  5686.  
  5687. # Is this an already installed library?
  5688. installed=$installed
  5689.  
  5690. # Should we warn about portability when linking against -modules?
  5691. shouldnotlink=$module
  5692.  
  5693. # Files to dlopen/dlpreopen
  5694. dlopen='$dlfiles'
  5695. dlpreopen='$dlprefiles'
  5696.  
  5697. # Directory that this library needs to be installed in:
  5698. libdir='$install_libdir'"
  5699.       if test "$installed" = no && test "$need_relink" = yes; then
  5700.         $echo >> $output "\
  5701. relink_command=\"$relink_command\""
  5702.       fi
  5703.     done
  5704.       fi
  5705.  
  5706.       # Do a symbolic link so that the libtool archive can be found in
  5707.       # LD_LIBRARY_PATH before the program is installed.
  5708.       $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
  5709.       $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
  5710.       ;;
  5711.     esac
  5712.     exit $EXIT_SUCCESS
  5713.     ;;
  5714.  
  5715.   # libtool install mode
  5716.   install)
  5717.     modename="$modename: install"
  5718.  
  5719.     # There may be an optional sh(1) argument at the beginning of
  5720.     # install_prog (especially on Windows NT).
  5721.     if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
  5722.        # Allow the use of GNU shtool's install command.
  5723.        $echo "X$nonopt" | grep shtool > /dev/null; then
  5724.       # Aesthetically quote it.
  5725.       arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
  5726.       case $arg in
  5727.       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \    ]*|*]*|"")
  5728.     arg="\"$arg\""
  5729.     ;;
  5730.       esac
  5731.       install_prog="$arg "
  5732.       arg="$1"
  5733.       shift
  5734.     else
  5735.       install_prog=
  5736.       arg=$nonopt
  5737.     fi
  5738.  
  5739.     # The real first argument should be the name of the installation program.
  5740.     # Aesthetically quote it.
  5741.     arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
  5742.     case $arg in
  5743.     *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \    ]*|*]*|"")
  5744.       arg="\"$arg\""
  5745.       ;;
  5746.     esac
  5747.     install_prog="$install_prog$arg"
  5748.  
  5749.     # We need to accept at least all the BSD install flags.
  5750.     dest=
  5751.     files=
  5752.     opts=
  5753.     prev=
  5754.     install_type=
  5755.     isdir=no
  5756.     stripme=
  5757.     for arg
  5758.     do
  5759.       if test -n "$dest"; then
  5760.     files="$files $dest"
  5761.     dest=$arg
  5762.     continue
  5763.       fi
  5764.  
  5765.       case $arg in
  5766.       -d) isdir=yes ;;
  5767.       -f) 
  5768.           case " $install_prog " in
  5769.     *[\\\ /]cp\ *) ;;
  5770.     *) prev=$arg ;;
  5771.     esac
  5772.     ;;
  5773.       -g | -m | -o) prev=$arg ;;
  5774.       -s)
  5775.     stripme=" -s"
  5776.     continue
  5777.     ;;
  5778.       -*)
  5779.     ;;
  5780.       *)
  5781.     # If the previous option needed an argument, then skip it.
  5782.     if test -n "$prev"; then
  5783.       prev=
  5784.     else
  5785.       dest=$arg
  5786.       continue
  5787.     fi
  5788.     ;;
  5789.       esac
  5790.  
  5791.       # Aesthetically quote the argument.
  5792.       arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
  5793.       case $arg in
  5794.       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \    ]*|*]*|"")
  5795.     arg="\"$arg\""
  5796.     ;;
  5797.       esac
  5798.       install_prog="$install_prog $arg"
  5799.     done
  5800.  
  5801.     if test -z "$install_prog"; then
  5802.       $echo "$modename: you must specify an install program" 1>&2
  5803.       $echo "$help" 1>&2
  5804.       exit $EXIT_FAILURE
  5805.     fi
  5806.  
  5807.     if test -n "$prev"; then
  5808.       $echo "$modename: the \`$prev' option requires an argument" 1>&2
  5809.       $echo "$help" 1>&2
  5810.       exit $EXIT_FAILURE
  5811.     fi
  5812.  
  5813.     if test -z "$files"; then
  5814.       if test -z "$dest"; then
  5815.     $echo "$modename: no file or destination specified" 1>&2
  5816.       else
  5817.     $echo "$modename: you must specify a destination" 1>&2
  5818.       fi
  5819.       $echo "$help" 1>&2
  5820.       exit $EXIT_FAILURE
  5821.     fi
  5822.  
  5823.     # Strip any trailing slash from the destination.
  5824.     dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
  5825.  
  5826.     # Check to see that the destination is a directory.
  5827.     test -d "$dest" && isdir=yes
  5828.     if test "$isdir" = yes; then
  5829.       destdir="$dest"
  5830.       destname=
  5831.     else
  5832.       destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
  5833.       test "X$destdir" = "X$dest" && destdir=.
  5834.       destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
  5835.  
  5836.       # Not a directory, so check to see that there is only one file specified.
  5837.       set dummy $files
  5838.       if test "$#" -gt 2; then
  5839.     $echo "$modename: \`$dest' is not a directory" 1>&2
  5840.     $echo "$help" 1>&2
  5841.     exit $EXIT_FAILURE
  5842.       fi
  5843.     fi
  5844.     case $destdir in
  5845.     [\\/]* | [A-Za-z]:[\\/]*) ;;
  5846.     *)
  5847.       for file in $files; do
  5848.     case $file in
  5849.     *.lo) ;;
  5850.     *)
  5851.       $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
  5852.       $echo "$help" 1>&2
  5853.       exit $EXIT_FAILURE
  5854.       ;;
  5855.     esac
  5856.       done
  5857.       ;;
  5858.     esac
  5859.  
  5860.     # This variable tells wrapper scripts just to set variables rather
  5861.     # than running their programs.
  5862.     libtool_install_magic="$magic"
  5863.  
  5864.     staticlibs=
  5865.     future_libdirs=
  5866.     current_libdirs=
  5867.     for file in $files; do
  5868.  
  5869.       # Do each installation.
  5870.       case $file in
  5871.       *.$libext)
  5872.     # Do the static libraries later.
  5873.     staticlibs="$staticlibs $file"
  5874.     ;;
  5875.  
  5876.       *.la)
  5877.     # Check to see that this really is a libtool archive.
  5878.     if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
  5879.     else
  5880.       $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
  5881.       $echo "$help" 1>&2
  5882.       exit $EXIT_FAILURE
  5883.     fi
  5884.  
  5885.     library_names=
  5886.     old_library=
  5887.     relink_command=
  5888.     # If there is no directory component, then add one.
  5889.     case $file in
  5890.     */* | *\\*) . $file ;;
  5891.     *) . ./$file ;;
  5892.     esac
  5893.  
  5894.     # Add the libdir to current_libdirs if it is the destination.
  5895.     if test "X$destdir" = "X$libdir"; then
  5896.       case "$current_libdirs " in
  5897.       *" $libdir "*) ;;
  5898.       *) current_libdirs="$current_libdirs $libdir" ;;
  5899.       esac
  5900.     else
  5901.       # Note the libdir as a future libdir.
  5902.       case "$future_libdirs " in
  5903.       *" $libdir "*) ;;
  5904.       *) future_libdirs="$future_libdirs $libdir" ;;
  5905.       esac
  5906.     fi
  5907.  
  5908.     dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
  5909.     test "X$dir" = "X$file/" && dir=
  5910.     dir="$dir$objdir"
  5911.  
  5912.     if test -n "$relink_command"; then
  5913.       # Determine the prefix the user has applied to our future dir.
  5914.       inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"`
  5915.  
  5916.       # Don't allow the user to place us outside of our expected
  5917.       # location b/c this prevents finding dependent libraries that
  5918.       # are installed to the same prefix.
  5919.       # At present, this check doesn't affect windows .dll's that
  5920.       # are installed into $libdir/../bin (currently, that works fine)
  5921.       # but it's something to keep an eye on.
  5922.       if test "$inst_prefix_dir" = "$destdir"; then
  5923.         $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
  5924.         exit $EXIT_FAILURE
  5925.       fi
  5926.  
  5927.       if test -n "$inst_prefix_dir"; then
  5928.         # Stick the inst_prefix_dir data into the link command.
  5929.         relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
  5930.       else
  5931.         relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
  5932.       fi
  5933.  
  5934.       $echo "$modename: warning: relinking \`$file'" 1>&2
  5935.       $show "$relink_command"
  5936.       if $run eval "$relink_command"; then :
  5937.       else
  5938.         $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
  5939.         exit $EXIT_FAILURE
  5940.       fi
  5941.     fi
  5942.  
  5943.     # See the names of the shared library.
  5944.     set dummy $library_names
  5945.     if test -n "$2"; then
  5946.       realname="$2"
  5947.       shift
  5948.       shift
  5949.  
  5950.       srcname="$realname"
  5951.       test -n "$relink_command" && srcname="$realname"T
  5952.  
  5953.       # Install the shared library and build the symlinks.
  5954.       $show "$install_prog $dir/$srcname $destdir/$realname"
  5955.       $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
  5956.       if test -n "$stripme" && test -n "$striplib"; then
  5957.         $show "$striplib $destdir/$realname"
  5958.         $run eval "$striplib $destdir/$realname" || exit $?
  5959.       fi
  5960.  
  5961.       if test "$#" -gt 0; then
  5962.         # Delete the old symlinks, and create new ones.
  5963.         # Try `ln -sf' first, because the `ln' binary might depend on
  5964.         # the symlink we replace!  Solaris /bin/ln does not understand -f,
  5965.         # so we also need to try rm && ln -s.
  5966.         for linkname
  5967.         do
  5968.           if test "$linkname" != "$realname"; then
  5969.                 $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
  5970.                 $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
  5971.           fi
  5972.         done
  5973.       fi
  5974.  
  5975.       # Do each command in the postinstall commands.
  5976.       lib="$destdir/$realname"
  5977.       cmds=$postinstall_cmds
  5978.       save_ifs="$IFS"; IFS='~'
  5979.       for cmd in $cmds; do
  5980.         IFS="$save_ifs"
  5981.         eval cmd=\"$cmd\"
  5982.         $show "$cmd"
  5983.         $run eval "$cmd" || {
  5984.           lt_exit=$?
  5985.  
  5986.           # Restore the uninstalled library and exit
  5987.           if test "$mode" = relink; then
  5988.         $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
  5989.           fi
  5990.  
  5991.           exit $lt_exit
  5992.         }
  5993.       done
  5994.       IFS="$save_ifs"
  5995.     fi
  5996.  
  5997.     # Install the pseudo-library for information purposes.
  5998.     name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
  5999.     instname="$dir/$name"i
  6000.     $show "$install_prog $instname $destdir/$name"
  6001.     $run eval "$install_prog $instname $destdir/$name" || exit $?
  6002.  
  6003.     # Maybe install the static library, too.
  6004.     test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
  6005.     ;;
  6006.  
  6007.       *.lo)
  6008.     # Install (i.e. copy) a libtool object.
  6009.  
  6010.     # Figure out destination file name, if it wasn't already specified.
  6011.     if test -n "$destname"; then
  6012.       destfile="$destdir/$destname"
  6013.     else
  6014.       destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
  6015.       destfile="$destdir/$destfile"
  6016.     fi
  6017.  
  6018.     # Deduce the name of the destination old-style object file.
  6019.     case $destfile in
  6020.     *.lo)
  6021.       staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
  6022.       ;;
  6023.     *.$objext)
  6024.       staticdest="$destfile"
  6025.       destfile=
  6026.       ;;
  6027.     *)
  6028.       $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
  6029.       $echo "$help" 1>&2
  6030.       exit $EXIT_FAILURE
  6031.       ;;
  6032.     esac
  6033.  
  6034.     # Install the libtool object if requested.
  6035.     if test -n "$destfile"; then
  6036.       $show "$install_prog $file $destfile"
  6037.       $run eval "$install_prog $file $destfile" || exit $?
  6038.     fi
  6039.  
  6040.     # Install the old object if enabled.
  6041.     if test "$build_old_libs" = yes; then
  6042.       # Deduce the name of the old-style object file.
  6043.       staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
  6044.  
  6045.       $show "$install_prog $staticobj $staticdest"
  6046.       $run eval "$install_prog \$staticobj \$staticdest" || exit $?
  6047.     fi
  6048.     exit $EXIT_SUCCESS
  6049.     ;;
  6050.  
  6051.       *)
  6052.     # Figure out destination file name, if it wasn't already specified.
  6053.     if test -n "$destname"; then
  6054.       destfile="$destdir/$destname"
  6055.     else
  6056.       destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
  6057.       destfile="$destdir/$destfile"
  6058.     fi
  6059.  
  6060.     # If the file is missing, and there is a .exe on the end, strip it
  6061.     # because it is most likely a libtool script we actually want to
  6062.     # install
  6063.     stripped_ext=""
  6064.     case $file in
  6065.       *.exe)
  6066.         if test ! -f "$file"; then
  6067.           file=`$echo $file|${SED} 's,.exe$,,'`
  6068.           stripped_ext=".exe"
  6069.         fi
  6070.         ;;
  6071.     esac
  6072.  
  6073.     # Do a test to see if this is really a libtool program.
  6074.     case $host in
  6075.     *cygwin*|*mingw*)
  6076.         wrapper=`$echo $file | ${SED} -e 's,.exe$,,'`
  6077.         ;;
  6078.     *)
  6079.         wrapper=$file
  6080.         ;;
  6081.     esac
  6082.     if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
  6083.       notinst_deplibs=
  6084.       relink_command=
  6085.  
  6086.       # Note that it is not necessary on cygwin/mingw to append a dot to
  6087.       # foo even if both foo and FILE.exe exist: automatic-append-.exe
  6088.       # behavior happens only for exec(3), not for open(2)!  Also, sourcing
  6089.       # `FILE.' does not work on cygwin managed mounts.
  6090.       #
  6091.       # If there is no directory component, then add one.
  6092.       case $wrapper in
  6093.       */* | *\\*) . ${wrapper} ;;
  6094.       *) . ./${wrapper} ;;
  6095.       esac
  6096.  
  6097.       # Check the variables that should have been set.
  6098.       if test -z "$notinst_deplibs"; then
  6099.         $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
  6100.         exit $EXIT_FAILURE
  6101.       fi
  6102.  
  6103.       finalize=yes
  6104.       for lib in $notinst_deplibs; do
  6105.         # Check to see that each library is installed.
  6106.         libdir=
  6107.         if test -f "$lib"; then
  6108.           # If there is no directory component, then add one.
  6109.           case $lib in
  6110.           */* | *\\*) . $lib ;;
  6111.           *) . ./$lib ;;
  6112.           esac
  6113.         fi
  6114.         libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
  6115.         if test -n "$libdir" && test ! -f "$libfile"; then
  6116.           $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
  6117.           finalize=no
  6118.         fi
  6119.       done
  6120.  
  6121.       relink_command=
  6122.       # Note that it is not necessary on cygwin/mingw to append a dot to
  6123.       # foo even if both foo and FILE.exe exist: automatic-append-.exe
  6124.       # behavior happens only for exec(3), not for open(2)!  Also, sourcing
  6125.       # `FILE.' does not work on cygwin managed mounts.
  6126.       #
  6127.       # If there is no directory component, then add one.
  6128.       case $wrapper in
  6129.       */* | *\\*) . ${wrapper} ;;
  6130.       *) . ./${wrapper} ;;
  6131.       esac
  6132.  
  6133.       outputname=
  6134.       if test "$fast_install" = no && test -n "$relink_command"; then
  6135.         if test "$finalize" = yes && test -z "$run"; then
  6136.           tmpdir=`func_mktempdir`
  6137.           file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
  6138.           outputname="$tmpdir/$file"
  6139.           # Replace the output file specification.
  6140.           relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
  6141.  
  6142.           $show "$relink_command"
  6143.           if $run eval "$relink_command"; then :
  6144.           else
  6145.         $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
  6146.         ${rm}r "$tmpdir"
  6147.         continue
  6148.           fi
  6149.           file="$outputname"
  6150.         else
  6151.           $echo "$modename: warning: cannot relink \`$file'" 1>&2
  6152.         fi
  6153.       else
  6154.         # Install the binary that we compiled earlier.
  6155.         file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
  6156.       fi
  6157.     fi
  6158.  
  6159.     # remove .exe since cygwin /usr/bin/install will append another
  6160.     # one anyway 
  6161.     case $install_prog,$host in
  6162.     */usr/bin/install*,*cygwin*)
  6163.       case $file:$destfile in
  6164.       *.exe:*.exe)
  6165.         # this is ok
  6166.         ;;
  6167.       *.exe:*)
  6168.         destfile=$destfile.exe
  6169.         ;;
  6170.       *:*.exe)
  6171.         destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'`
  6172.         ;;
  6173.       esac
  6174.       ;;
  6175.     esac
  6176.     $show "$install_prog$stripme $file $destfile"
  6177.     $run eval "$install_prog\$stripme \$file \$destfile" || exit $?
  6178.     test -n "$outputname" && ${rm}r "$tmpdir"
  6179.     ;;
  6180.       esac
  6181.     done
  6182.  
  6183.     for file in $staticlibs; do
  6184.       name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
  6185.  
  6186.       # Set up the ranlib parameters.
  6187.       oldlib="$destdir/$name"
  6188.  
  6189.       $show "$install_prog $file $oldlib"
  6190.       $run eval "$install_prog \$file \$oldlib" || exit $?
  6191.  
  6192.       if test -n "$stripme" && test -n "$old_striplib"; then
  6193.     $show "$old_striplib $oldlib"
  6194.     $run eval "$old_striplib $oldlib" || exit $?
  6195.       fi
  6196.  
  6197.       # Do each command in the postinstall commands.
  6198.       cmds=$old_postinstall_cmds
  6199.       save_ifs="$IFS"; IFS='~'
  6200.       for cmd in $cmds; do
  6201.     IFS="$save_ifs"
  6202.     eval cmd=\"$cmd\"
  6203.     $show "$cmd"
  6204.     $run eval "$cmd" || exit $?
  6205.       done
  6206.       IFS="$save_ifs"
  6207.     done
  6208.  
  6209.     if test -n "$future_libdirs"; then
  6210.       $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
  6211.     fi
  6212.  
  6213.     if test -n "$current_libdirs"; then
  6214.       # Maybe just do a dry run.
  6215.       test -n "$run" && current_libdirs=" -n$current_libdirs"
  6216.       exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
  6217.     else
  6218.       exit $EXIT_SUCCESS
  6219.     fi
  6220.     ;;
  6221.  
  6222.   # libtool finish mode
  6223.   finish)
  6224.     modename="$modename: finish"
  6225.     libdirs="$nonopt"
  6226.     admincmds=
  6227.  
  6228.     if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
  6229.       for dir
  6230.       do
  6231.     libdirs="$libdirs $dir"
  6232.       done
  6233.  
  6234.       for libdir in $libdirs; do
  6235.     if test -n "$finish_cmds"; then
  6236.       # Do each command in the finish commands.
  6237.       cmds=$finish_cmds
  6238.       save_ifs="$IFS"; IFS='~'
  6239.       for cmd in $cmds; do
  6240.         IFS="$save_ifs"
  6241.         eval cmd=\"$cmd\"
  6242.         $show "$cmd"
  6243.         $run eval "$cmd" || admincmds="$admincmds
  6244.        $cmd"
  6245.       done
  6246.       IFS="$save_ifs"
  6247.     fi
  6248.     if test -n "$finish_eval"; then
  6249.       # Do the single finish_eval.
  6250.       eval cmds=\"$finish_eval\"
  6251.       $run eval "$cmds" || admincmds="$admincmds
  6252.        $cmds"
  6253.     fi
  6254.       done
  6255.     fi
  6256.  
  6257.     # Exit here if they wanted silent mode.
  6258.     test "$show" = : && exit $EXIT_SUCCESS
  6259.  
  6260.     $echo "X----------------------------------------------------------------------" | $Xsed
  6261.     $echo "Libraries have been installed in:"
  6262.     for libdir in $libdirs; do
  6263.       $echo "   $libdir"
  6264.     done
  6265.     $echo
  6266.     $echo "If you ever happen to want to link against installed libraries"
  6267.     $echo "in a given directory, LIBDIR, you must either use libtool, and"
  6268.     $echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
  6269.     $echo "flag during linking and do at least one of the following:"
  6270.     if test -n "$shlibpath_var"; then
  6271.       $echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
  6272.       $echo "     during execution"
  6273.     fi
  6274.     if test -n "$runpath_var"; then
  6275.       $echo "   - add LIBDIR to the \`$runpath_var' environment variable"
  6276.       $echo "     during linking"
  6277.     fi
  6278.     if test -n "$hardcode_libdir_flag_spec"; then
  6279.       libdir=LIBDIR
  6280.       eval flag=\"$hardcode_libdir_flag_spec\"
  6281.  
  6282.       $echo "   - use the \`$flag' linker flag"
  6283.     fi
  6284.     if test -n "$admincmds"; then
  6285.       $echo "   - have your system administrator run these commands:$admincmds"
  6286.     fi
  6287.     if test -f /etc/ld.so.conf; then
  6288.       $echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
  6289.     fi
  6290.     $echo
  6291.     $echo "See any operating system documentation about shared libraries for"
  6292.     $echo "more information, such as the ld(1) and ld.so(8) manual pages."
  6293.     $echo "X----------------------------------------------------------------------" | $Xsed
  6294.     exit $EXIT_SUCCESS
  6295.     ;;
  6296.  
  6297.   # libtool execute mode
  6298.   execute)
  6299.     modename="$modename: execute"
  6300.  
  6301.     # The first argument is the command name.
  6302.     cmd="$nonopt"
  6303.     if test -z "$cmd"; then
  6304.       $echo "$modename: you must specify a COMMAND" 1>&2
  6305.       $echo "$help"
  6306.       exit $EXIT_FAILURE
  6307.     fi
  6308.  
  6309.     # Handle -dlopen flags immediately.
  6310.     for file in $execute_dlfiles; do
  6311.       if test ! -f "$file"; then
  6312.     $echo "$modename: \`$file' is not a file" 1>&2
  6313.     $echo "$help" 1>&2
  6314.     exit $EXIT_FAILURE
  6315.       fi
  6316.  
  6317.       dir=
  6318.       case $file in
  6319.       *.la)
  6320.     # Check to see that this really is a libtool archive.
  6321.     if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
  6322.     else
  6323.       $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
  6324.       $echo "$help" 1>&2
  6325.       exit $EXIT_FAILURE
  6326.     fi
  6327.  
  6328.     # Read the libtool library.
  6329.     dlname=
  6330.     library_names=
  6331.  
  6332.     # If there is no directory component, then add one.
  6333.     case $file in
  6334.     */* | *\\*) . $file ;;
  6335.     *) . ./$file ;;
  6336.     esac
  6337.  
  6338.     # Skip this library if it cannot be dlopened.
  6339.     if test -z "$dlname"; then
  6340.       # Warn if it was a shared library.
  6341.       test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
  6342.       continue
  6343.     fi
  6344.  
  6345.     dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
  6346.     test "X$dir" = "X$file" && dir=.
  6347.  
  6348.     if test -f "$dir/$objdir/$dlname"; then
  6349.       dir="$dir/$objdir"
  6350.     else
  6351.       $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
  6352.       exit $EXIT_FAILURE
  6353.     fi
  6354.     ;;
  6355.  
  6356.       *.lo)
  6357.     # Just add the directory containing the .lo file.
  6358.     dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
  6359.     test "X$dir" = "X$file" && dir=.
  6360.     ;;
  6361.  
  6362.       *)
  6363.     $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
  6364.     continue
  6365.     ;;
  6366.       esac
  6367.  
  6368.       # Get the absolute pathname.
  6369.       absdir=`cd "$dir" && pwd`
  6370.       test -n "$absdir" && dir="$absdir"
  6371.  
  6372.       # Now add the directory to shlibpath_var.
  6373.       if eval "test -z \"\$$shlibpath_var\""; then
  6374.     eval "$shlibpath_var=\"\$dir\""
  6375.       else
  6376.     eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
  6377.       fi
  6378.     done
  6379.  
  6380.     # This variable tells wrapper scripts just to set shlibpath_var
  6381.     # rather than running their programs.
  6382.     libtool_execute_magic="$magic"
  6383.  
  6384.     # Check if any of the arguments is a wrapper script.
  6385.     args=
  6386.     for file
  6387.     do
  6388.       case $file in
  6389.       -*) ;;
  6390.       *)
  6391.     # Do a test to see if this is really a libtool program.
  6392.     if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
  6393.       # If there is no directory component, then add one.
  6394.       case $file in
  6395.       */* | *\\*) . $file ;;
  6396.       *) . ./$file ;;
  6397.       esac
  6398.  
  6399.       # Transform arg to wrapped name.
  6400.       file="$progdir/$program"
  6401.     fi
  6402.     ;;
  6403.       esac
  6404.       # Quote arguments (to preserve shell metacharacters).
  6405.       file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
  6406.       args="$args \"$file\""
  6407.     done
  6408.  
  6409.     if test -z "$run"; then
  6410.       if test -n "$shlibpath_var"; then
  6411.     # Export the shlibpath_var.
  6412.     eval "export $shlibpath_var"
  6413.       fi
  6414.  
  6415.       # Restore saved environment variables
  6416.       if test "${save_LC_ALL+set}" = set; then
  6417.     LC_ALL="$save_LC_ALL"; export LC_ALL
  6418.       fi
  6419.       if test "${save_LANG+set}" = set; then
  6420.     LANG="$save_LANG"; export LANG
  6421.       fi
  6422.  
  6423.       # Now prepare to actually exec the command.
  6424.       exec_cmd="\$cmd$args"
  6425.     else
  6426.       # Display what would be done.
  6427.       if test -n "$shlibpath_var"; then
  6428.     eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
  6429.     $echo "export $shlibpath_var"
  6430.       fi
  6431.       $echo "$cmd$args"
  6432.       exit $EXIT_SUCCESS
  6433.     fi
  6434.     ;;
  6435.  
  6436.   # libtool clean and uninstall mode
  6437.   clean | uninstall)
  6438.     modename="$modename: $mode"
  6439.     rm="$nonopt"
  6440.     files=
  6441.     rmforce=
  6442.     exit_status=0
  6443.  
  6444.     # This variable tells wrapper scripts just to set variables rather
  6445.     # than running their programs.
  6446.     libtool_install_magic="$magic"
  6447.  
  6448.     for arg
  6449.     do
  6450.       case $arg in
  6451.       -f) rm="$rm $arg"; rmforce=yes ;;
  6452.       -*) rm="$rm $arg" ;;
  6453.       *) files="$files $arg" ;;
  6454.       esac
  6455.     done
  6456.  
  6457.     if test -z "$rm"; then
  6458.       $echo "$modename: you must specify an RM program" 1>&2
  6459.       $echo "$help" 1>&2
  6460.       exit $EXIT_FAILURE
  6461.     fi
  6462.  
  6463.     rmdirs=
  6464.  
  6465.     origobjdir="$objdir"
  6466.     for file in $files; do
  6467.       dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
  6468.       if test "X$dir" = "X$file"; then
  6469.     dir=.
  6470.     objdir="$origobjdir"
  6471.       else
  6472.     objdir="$dir/$origobjdir"
  6473.       fi
  6474.       name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
  6475.       test "$mode" = uninstall && objdir="$dir"
  6476.  
  6477.       # Remember objdir for removal later, being careful to avoid duplicates
  6478.       if test "$mode" = clean; then
  6479.     case " $rmdirs " in
  6480.       *" $objdir "*) ;;
  6481.       *) rmdirs="$rmdirs $objdir" ;;
  6482.     esac
  6483.       fi
  6484.  
  6485.       # Don't error if the file doesn't exist and rm -f was used.
  6486.       if (test -L "$file") >/dev/null 2>&1 \
  6487.     || (test -h "$file") >/dev/null 2>&1 \
  6488.     || test -f "$file"; then
  6489.     :
  6490.       elif test -d "$file"; then
  6491.     exit_status=1
  6492.     continue
  6493.       elif test "$rmforce" = yes; then
  6494.     continue
  6495.       fi
  6496.  
  6497.       rmfiles="$file"
  6498.  
  6499.       case $name in
  6500.       *.la)
  6501.     # Possibly a libtool archive, so verify it.
  6502.     if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
  6503.       . $dir/$name
  6504.  
  6505.       # Delete the libtool libraries and symlinks.
  6506.       for n in $library_names; do
  6507.         rmfiles="$rmfiles $objdir/$n"
  6508.       done
  6509.       test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
  6510.  
  6511.       case "$mode" in
  6512.       clean)
  6513.         case "  $library_names " in
  6514.         # "  " in the beginning catches empty $dlname
  6515.         *" $dlname "*) ;;
  6516.         *) rmfiles="$rmfiles $objdir/$dlname" ;;
  6517.         esac
  6518.          test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
  6519.         ;;
  6520.       uninstall)
  6521.         if test -n "$library_names"; then
  6522.           # Do each command in the postuninstall commands.
  6523.           cmds=$postuninstall_cmds
  6524.           save_ifs="$IFS"; IFS='~'
  6525.           for cmd in $cmds; do
  6526.         IFS="$save_ifs"
  6527.         eval cmd=\"$cmd\"
  6528.         $show "$cmd"
  6529.         $run eval "$cmd"
  6530.         if test "$?" -ne 0 && test "$rmforce" != yes; then
  6531.           exit_status=1
  6532.         fi
  6533.           done
  6534.           IFS="$save_ifs"
  6535.         fi
  6536.  
  6537.         if test -n "$old_library"; then
  6538.           # Do each command in the old_postuninstall commands.
  6539.           cmds=$old_postuninstall_cmds
  6540.           save_ifs="$IFS"; IFS='~'
  6541.           for cmd in $cmds; do
  6542.         IFS="$save_ifs"
  6543.         eval cmd=\"$cmd\"
  6544.         $show "$cmd"
  6545.         $run eval "$cmd"
  6546.         if test "$?" -ne 0 && test "$rmforce" != yes; then
  6547.           exit_status=1
  6548.         fi
  6549.           done
  6550.           IFS="$save_ifs"
  6551.         fi
  6552.         # FIXME: should reinstall the best remaining shared library.
  6553.         ;;
  6554.       esac
  6555.     fi
  6556.     ;;
  6557.  
  6558.       *.lo)
  6559.     # Possibly a libtool object, so verify it.
  6560.     if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
  6561.  
  6562.       # Read the .lo file
  6563.       . $dir/$name
  6564.  
  6565.       # Add PIC object to the list of files to remove.
  6566.       if test -n "$pic_object" \
  6567.          && test "$pic_object" != none; then
  6568.         rmfiles="$rmfiles $dir/$pic_object"
  6569.       fi
  6570.  
  6571.       # Add non-PIC object to the list of files to remove.
  6572.       if test -n "$non_pic_object" \
  6573.          && test "$non_pic_object" != none; then
  6574.         rmfiles="$rmfiles $dir/$non_pic_object"
  6575.       fi
  6576.     fi
  6577.     ;;
  6578.  
  6579.       *)
  6580.     if test "$mode" = clean ; then
  6581.       noexename=$name
  6582.       case $file in
  6583.       *.exe)
  6584.         file=`$echo $file|${SED} 's,.exe$,,'`
  6585.         noexename=`$echo $name|${SED} 's,.exe$,,'`
  6586.         # $file with .exe has already been added to rmfiles,
  6587.         # add $file without .exe
  6588.         rmfiles="$rmfiles $file"
  6589.         ;;
  6590.       esac
  6591.       # Do a test to see if this is a libtool program.
  6592.       if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
  6593.         relink_command=
  6594.         . $dir/$noexename
  6595.  
  6596.         # note $name still contains .exe if it was in $file originally
  6597.         # as does the version of $file that was added into $rmfiles
  6598.         rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
  6599.         if test "$fast_install" = yes && test -n "$relink_command"; then
  6600.           rmfiles="$rmfiles $objdir/lt-$name"
  6601.         fi
  6602.         if test "X$noexename" != "X$name" ; then
  6603.           rmfiles="$rmfiles $objdir/lt-${noexename}.c"
  6604.         fi
  6605.       fi
  6606.     fi
  6607.     ;;
  6608.       esac
  6609.       $show "$rm $rmfiles"
  6610.       $run $rm $rmfiles || exit_status=1
  6611.     done
  6612.     objdir="$origobjdir"
  6613.  
  6614.     # Try to remove the ${objdir}s in the directories where we deleted files
  6615.     for dir in $rmdirs; do
  6616.       if test -d "$dir"; then
  6617.     $show "rmdir $dir"
  6618.     $run rmdir $dir >/dev/null 2>&1
  6619.       fi
  6620.     done
  6621.  
  6622.     exit $exit_status
  6623.     ;;
  6624.  
  6625.   "")
  6626.     $echo "$modename: you must specify a MODE" 1>&2
  6627.     $echo "$generic_help" 1>&2
  6628.     exit $EXIT_FAILURE
  6629.     ;;
  6630.   esac
  6631.  
  6632.   if test -z "$exec_cmd"; then
  6633.     $echo "$modename: invalid operation mode \`$mode'" 1>&2
  6634.     $echo "$generic_help" 1>&2
  6635.     exit $EXIT_FAILURE
  6636.   fi
  6637. fi # test -z "$show_help"
  6638.  
  6639. if test -n "$exec_cmd"; then
  6640.   eval exec $exec_cmd
  6641.   exit $EXIT_FAILURE
  6642. fi
  6643.  
  6644. # We need to display help for each of the modes.
  6645. case $mode in
  6646. "") $echo \
  6647. "Usage: $modename [OPTION]... [MODE-ARG]...
  6648.  
  6649. Provide generalized library-building support services.
  6650.  
  6651.     --config          show all configuration variables
  6652.     --debug           enable verbose shell tracing
  6653. -n, --dry-run         display commands without modifying any files
  6654.     --features        display basic configuration information and exit
  6655.     --finish          same as \`--mode=finish'
  6656.     --help            display this help message and exit
  6657.     --mode=MODE       use operation mode MODE [default=inferred from MODE-ARGS]
  6658.     --quiet           same as \`--silent'
  6659.     --silent          don't print informational messages
  6660.     --tag=TAG         use configuration variables from tag TAG
  6661.     --version         print version information
  6662.  
  6663. MODE must be one of the following:
  6664.  
  6665.       clean           remove files from the build directory
  6666.       compile         compile a source file into a libtool object
  6667.       execute         automatically set library path, then run a program
  6668.       finish          complete the installation of libtool libraries
  6669.       install         install libraries or executables
  6670.       link            create a library or an executable
  6671.       uninstall       remove libraries from an installed directory
  6672.  
  6673. MODE-ARGS vary depending on the MODE.  Try \`$modename --help --mode=MODE' for
  6674. a more detailed description of MODE.
  6675.  
  6676. Report bugs to <bug-libtool@gnu.org>."
  6677.   exit $EXIT_SUCCESS
  6678.   ;;
  6679.  
  6680. clean)
  6681.   $echo \
  6682. "Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
  6683.  
  6684. Remove files from the build directory.
  6685.  
  6686. RM is the name of the program to use to delete files associated with each FILE
  6687. (typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
  6688. to RM.
  6689.  
  6690. If FILE is a libtool library, object or program, all the files associated
  6691. with it are deleted. Otherwise, only FILE itself is deleted using RM."
  6692.   ;;
  6693.  
  6694. compile)
  6695.   $echo \
  6696. "Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
  6697.  
  6698. Compile a source file into a libtool library object.
  6699.  
  6700. This mode accepts the following additional options:
  6701.  
  6702.   -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
  6703.   -prefer-pic       try to building PIC objects only
  6704.   -prefer-non-pic   try to building non-PIC objects only
  6705.   -static           always build a \`.o' file suitable for static linking
  6706.  
  6707. COMPILE-COMMAND is a command to be used in creating a \`standard' object file
  6708. from the given SOURCEFILE.
  6709.  
  6710. The output file name is determined by removing the directory component from
  6711. SOURCEFILE, then substituting the C source code suffix \`.c' with the
  6712. library object suffix, \`.lo'."
  6713.   ;;
  6714.  
  6715. execute)
  6716.   $echo \
  6717. "Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
  6718.  
  6719. Automatically set library path, then run a program.
  6720.  
  6721. This mode accepts the following additional options:
  6722.  
  6723.   -dlopen FILE      add the directory containing FILE to the library path
  6724.  
  6725. This mode sets the library path environment variable according to \`-dlopen'
  6726. flags.
  6727.  
  6728. If any of the ARGS are libtool executable wrappers, then they are translated
  6729. into their corresponding uninstalled binary, and any of their required library
  6730. directories are added to the library path.
  6731.  
  6732. Then, COMMAND is executed, with ARGS as arguments."
  6733.   ;;
  6734.  
  6735. finish)
  6736.   $echo \
  6737. "Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
  6738.  
  6739. Complete the installation of libtool libraries.
  6740.  
  6741. Each LIBDIR is a directory that contains libtool libraries.
  6742.  
  6743. The commands that this mode executes may require superuser privileges.  Use
  6744. the \`--dry-run' option if you just want to see what would be executed."
  6745.   ;;
  6746.  
  6747. install)
  6748.   $echo \
  6749. "Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
  6750.  
  6751. Install executables or libraries.
  6752.  
  6753. INSTALL-COMMAND is the installation command.  The first component should be
  6754. either the \`install' or \`cp' program.
  6755.  
  6756. The rest of the components are interpreted as arguments to that command (only
  6757. BSD-compatible install options are recognized)."
  6758.   ;;
  6759.  
  6760. link)
  6761.   $echo \
  6762. "Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
  6763.  
  6764. Link object files or libraries together to form another library, or to
  6765. create an executable program.
  6766.  
  6767. LINK-COMMAND is a command using the C compiler that you would use to create
  6768. a program from several object files.
  6769.  
  6770. The following components of LINK-COMMAND are treated specially:
  6771.  
  6772.   -all-static       do not do any dynamic linking at all
  6773.   -avoid-version    do not add a version suffix if possible
  6774.   -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
  6775.   -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
  6776.   -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
  6777.   -export-symbols SYMFILE
  6778.             try to export only the symbols listed in SYMFILE
  6779.   -export-symbols-regex REGEX
  6780.             try to export only the symbols matching REGEX
  6781.   -LLIBDIR          search LIBDIR for required installed libraries
  6782.   -lNAME            OUTPUT-FILE requires the installed library libNAME
  6783.   -module           build a library that can dlopened
  6784.   -no-fast-install  disable the fast-install mode
  6785.   -no-install       link a not-installable executable
  6786.   -no-undefined     declare that a library does not refer to external symbols
  6787.   -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
  6788.   -objectlist FILE  Use a list of object files found in FILE to specify objects
  6789.   -precious-files-regex REGEX
  6790.                     don't remove output files matching REGEX
  6791.   -release RELEASE  specify package release information
  6792.   -rpath LIBDIR     the created library will eventually be installed in LIBDIR
  6793.   -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
  6794.   -static           do not do any dynamic linking of libtool libraries
  6795.   -version-info CURRENT[:REVISION[:AGE]]
  6796.             specify library version info [each variable defaults to 0]
  6797.  
  6798. All other options (arguments beginning with \`-') are ignored.
  6799.  
  6800. Every other argument is treated as a filename.  Files ending in \`.la' are
  6801. treated as uninstalled libtool libraries, other files are standard or library
  6802. object files.
  6803.  
  6804. If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
  6805. only library objects (\`.lo' files) may be specified, and \`-rpath' is
  6806. required, except when creating a convenience library.
  6807.  
  6808. If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
  6809. using \`ar' and \`ranlib', or on Windows using \`lib'.
  6810.  
  6811. If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
  6812. is created, otherwise an executable program is created."
  6813.   ;;
  6814.  
  6815. uninstall)
  6816.   $echo \
  6817. "Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
  6818.  
  6819. Remove libraries from an installation directory.
  6820.  
  6821. RM is the name of the program to use to delete files associated with each FILE
  6822. (typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
  6823. to RM.
  6824.  
  6825. If FILE is a libtool library, all the files associated with it are deleted.
  6826. Otherwise, only FILE itself is deleted using RM."
  6827.   ;;
  6828.  
  6829. *)
  6830.   $echo "$modename: invalid operation mode \`$mode'" 1>&2
  6831.   $echo "$help" 1>&2
  6832.   exit $EXIT_FAILURE
  6833.   ;;
  6834. esac
  6835.  
  6836. $echo
  6837. $echo "Try \`$modename --help' for more information about other modes."
  6838.  
  6839. exit $?
  6840.  
  6841. # The TAGs below are defined such that we never get into a situation
  6842. # in which we disable both kinds of libraries.  Given conflicting
  6843. # choices, we go for a static library, that is the most portable,
  6844. # since we can't tell whether shared libraries were disabled because
  6845. # the user asked for that or because the platform doesn't support
  6846. # them.  This is particularly important on AIX, because we don't
  6847. # support having both static and shared libraries enabled at the same
  6848. # time on that platform, so we default to a shared-only configuration.
  6849. # If a disable-shared tag is given, we'll fallback to a static-only
  6850. # configuration.  But we'll never go from static-only to shared-only.
  6851.  
  6852. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared
  6853. disable_libs=shared
  6854. # ### END LIBTOOL TAG CONFIG: disable-shared
  6855.  
  6856. # ### BEGIN LIBTOOL TAG CONFIG: disable-static
  6857. disable_libs=static
  6858. # ### END LIBTOOL TAG CONFIG: disable-static
  6859.  
  6860. # Local Variables:
  6861. # mode:shell-script
  6862. # sh-indentation:2
  6863. # End:
  6864.